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

【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))

    推荐阅读