swift搜索面试实战题-版本崩溃

有一个产品发布了多个版本。它遵循一下规则:假如某个版本崩溃了,则后面的所有版本都会崩溃。
举一个例子:一个产品假如有5个版本,其中1~3版本都是正常的,但是第4个版本崩溃了,那么第5个版本(最新版本)一定也奔溃。第4个版本被称为第一个崩溃的版本。
现在已知一个产品有n个版本,而且有一个检查算法func isBadVersion( _ version : Int) -> Bool 可以判断一个版本是否崩溃。假如这个产品的最新版本崩溃了,求第一个崩溃的版本。

    func minBadVersion(low : Int, high : Int , _ arr : [Int]) -> Int {
        guard low < high else{
            return low
        }
        let mid = (low + high) / 2
        if isBadVersion(arr[mid]){
            return minBadVersion(low: low, high: mid, arr)
        }else{
            return minBadVersion(low: mid + 1, high: high, arr)
        }
    }
    func isBadVersion(_ version : Int) -> Bool{
        if (version >= 10){
            return true
        }else{
            return false
        }
    }

    let arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
    print(minBadVersion(low: 0, high: arr.count - 1, arr))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容