美文网首页
IOS 算法(基础篇) ----- 搜索插入位置

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

作者: ShawnAlex | 来源:发表于2020-07-20 09:43 被阅读0次

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

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

    给定一个正序不重复数组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 算法合集地址

    相关文章

      网友评论

          本文标题:IOS 算法(基础篇) ----- 搜索插入位置

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