ARTS - 10

384 阅读1分钟

A


98. 验证二叉搜索树

描述:

给定一个二叉树,判断其是否是一个有效的二叉搜索树。

假设一个二叉搜索树具有如下特征:

  • 节点的左子树只包含小于当前节点的数。
  • 节点的右子树只包含大于当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

分析:

采用分治法,判断当前节点的值是否大于左侧最大值且小于右侧最小值,初值可以为设为整数的最小值和最大值,然后向下逐级遍历计算。

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


这周杂事比较多,没时间写……