算法每日一刷

LeetCode算法题-35. 搜索插入位置(Swift)

2019-10-26  本文已影响0人  entre_los_dos

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

示例 3:

输入: [1,3,5,6], 7
输出: 4

示例 4:

输入: [1,3,5,6], 0
输出: 0

方法-二分法查找

func searchInsert(_ nums: [Int], _ target: Int) -> Int {
        
        var startIndex = 0
        var endIndex = nums.count - 1
        
        while startIndex < endIndex {
            
            let middleIndex = startIndex + (endIndex - startIndex)/2
            if target == nums[middleIndex] {
                
                return middleIndex
            }else if target < nums[middleIndex] {
                endIndex = middleIndex - 1
            }else {
                startIndex = middleIndex + 1
            }
            
        }
        
        return (nums[startIndex] >= target ? startIndex : startIndex+1)
    }
上一篇下一篇

猜你喜欢

热点阅读