IOS|IOS 算法(基础篇) ----- 基础索引

【IOS|IOS 算法(基础篇) ----- 基础索引】今天分享一道基础中的基础算法题, 给大家分享一下
如果你想知道什么题? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!
给定一个有序整数数组A, 找到 A[i] = i, 并返回i, 如果有很多相同, 返回最小i, 没有返回-1
例如:
A = [0, 1, 2, 3] 返回0
B = [2, 2, 2, 3] 返回2
由于题目比较简单直接上代码

func findIndex(_ nums: [Int]) -> Int { for i in 0..

当然由于是正序数组, 当我们循环时候如果当前 nums[i] > i的话, 我们可以将i直接跳到 nums[i]
为什么呢? 正序, 正序, 正序
nums[i + 1] >= num[i], 所以我们可以减少几次, 增加一行判断 nums[i] > i { i = nums[i] }
func findIndex(_ nums: [Int]) -> Int { for var i in 0.. i { i = nums[i] } } return -1 }

IOS 算法合集地址

    推荐阅读