美文网首页算法每日一刷
LeetCode算法题-35. 搜索插入位置(Swift)

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

作者: entre_los_dos | 来源:发表于2019-10-26 12:45 被阅读0次

    来源:力扣(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)
        }
    

    相关文章

      网友评论

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

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