美文网首页
IOS 算法(基础篇) ----- 基础索引

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

作者: ShawnAlex | 来源:发表于2020-08-05 17:07 被阅读0次

    今天分享一道基础中的基础算法题, 给大家分享一下

    如果你想知道什么题? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!

    给定一个有序整数数组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.count {
                if nums[i] == i { return i }
            }
            return -1
        }
    

    当然由于是正序数组, 当我们循环时候如果当前 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..<nums.count {
                if nums[i] == i { return i }
                else if nums[i] > i { i = nums[i] }
            }
            return -1
        }
    

    IOS 算法合集地址

    相关文章

      网友评论

          本文标题:IOS 算法(基础篇) ----- 基础索引

          本文链接:https://www.haomeiwen.com/subject/xxqsrktx.html