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 算法合集地址

你可能感兴趣的:(IOS 算法(基础篇) ----- 基础索引)