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))
推荐阅读
- 【译】20个更有效地使用谷歌搜索的技巧
- Swift中willSet和didSet的简述
- 2018国考外交部面试演讲不再难——只需把握好三点
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- java|java 常用知识点链接
- Swift|Swift ----viewController 中addChildViewController
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)