A
描述:
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
- 节点的左子树只包含小于当前节点的数。
- 节点的右子树只包含大于当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
分析:
采用分治法,判断当前节点的值是否大于左侧最大值且小于右侧最小值,初值可以为设为整数的最小值和最大值,然后向下逐级遍历计算。
R
Understanding Clean Code in Android
文章讲述了 Android 中干净代码需要注意的一些地方。
起有意义的名字
- 类名:应包含名词或名词短语,如 Customer, WikiPage, Account ,不能是动词。
- 方法名:应包含动词,如 postPayment, deletePage, or save 等。
使用 S.O.L.I.D 原则写代码
-
Single Responsibility Principle — 单一职责原则
1个类责任应该是单一的。
-
Open-Closed Principle — 开闭原则
代码应当开放以便于扩展,封闭以阻止修改。
-
Liskov Substitutions Principle — 里氏替换原则
子类可以完全替代父类的功能。
-
Interface Segregation Principle — 接口分离原则
不强近客户端依赖其不使用的方法。
-
Dependency Inversion Principle — 依赖倒置原则
程序要依赖于抽象接口,不依赖于具体实现。
T
Swift 里扩展 UIColor ,实现用16进制颜色来创建 UIColor 对象的方法。
import UIKit
extension UIColor {
convenience init(hex:Int, alpha: CGFloat = 1.0) {
self.init(
red: CGFloat((hex & 0xFF0000) >> 16) / 255.0,
green: CGFloat((hex & 0x00FF00) >> 8) / 255.0,
blue: CGFloat((hex & 0x0000FF) >> 0) / 255.0,
alpha: alpha
)
}
}
R
这周杂事比较多,没时间写……