IOS 算法(基础篇) ----- 搜索插入位置

2020-07-20  本文已影响0人  ShawnAlex

今天看一道基础的插入算法题

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

给定一个正序不重复数组nums, 并给定一个目标值target, 在数组中找到目标值target, 如果不存在, 返回顺序插入首次出现位置。

例如:
nums = [1, 2, 3, 4, 5, 6] target = 5 返回: 4
nums = [6, 7, 8, 9] target = 5 返回: 0
nums = [1, 2, 3] target = 5 返回: 3

暴力法

for循环判断, 因为是正序排列, 如果 当前循环数 num[i] >= 目标target 则插入当前位置

否则插入数组最后

func searchInsert(_ nums: [Int], _ target: Int) -> Int {

        for i in 0..<nums.count {

            if nums[i] >= target{

                return i

            }

        }

        return nums.count
}

排序法

这种方法比较巧妙, 将 target 插入数组 nums 然后正序排序, 去target第一次出现的下标 (索引)

1行代码即可, 简洁高效

    func searchInsert(_ nums: [Int], _ target: Int) -> Int {

        return (nums + [target]).sorted().firstIndex(of: target)!

   }

题目来源:力扣(LeetCode) 感谢力扣爸爸 :)

IOS 算法合集地址

上一篇 下一篇

猜你喜欢

热点阅读