[LeetCode]problem 35. Search Insert Position

原创 2016年05月31日 10:00:06

problem 35. Search Insert Position

link

TAG

二分查找

插入

方法

能够比较快的明确思路——就是二分查找的应用。

然而写起来还是很费劲,之前那道找最长递增序列的长度其实就需要用到这道题的算法来实现快速查找插入位置(完全一样好吗!当时就写出来了啊…但是现在又忘了…)。 直接看了DISCUSS的代码.

记住了两点关键:

  1. 循环条件是low<=high, 其中high初始为size -1,即没有与STL中的范围下标规范一致。(可以一致的,如果要一致,那么循环条件就是小于)

  2. 循环跳出条件,必然满足low == high+1,所以返回low或者high+1都是没有问题的。但是mid的值是不确定的,在退出之前,mid值肯定是等于low的,但是退出后mid与low的关系就不一定了…(有可能是mid小1,有可能是相等)

代码

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int sz = nums.size() ;
        int low = 0 , 
            high = sz -1 ;
        while( low <= high )
        {
            int mid = low + (high - low)/2 ;
            int midVal = nums[mid];
            if(target < midVal){ high = mid -1 ; }
            else if(target > midVal){ low = mid + 1 ; }
            else return mid ;
        }
        // here `low == high + 1` is always right
        return low ;
    }
};

后记

之前一直写在Github上,最近决心找工作,得做做表面工作啊… 所以要同步起来了…orz,感觉好没意思…然而,虚荣心让我还是要这么做

版权声明:本文为博主原创文章[在个人GitHub上可能有相同技术文档],未经博主允许不得转载。

相关文章推荐

[LeetCode]35.Search Insert Position

【题目】 Given a sorted array and a target value, return the index if the target is found. If not, ...

LeetCode 35 Search Insert Position (C,C++,Java,Python)

Problem: Given a sorted array and a target value, return the index if the target is found. If n...

LeetCode 35 — Search Insert Position(C++ Java Python)

题目:http://oj.leetcode.com/problems/search-insert-position/ Given a sorted array and a target value...

LeetCode 35. Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the...

[LeetCode35]Search Insert Position

Given a sorted array and a target value, return the index if the target is found. If not, return the...
  • sbitswc
  • sbitswc
  • 2014年06月16日 04:11
  • 560

<LeetCode OJ> 35. Search Insert Position

35. Search Insert Position My Submissions Question Total Accepted: 94638 Total Submissions: 2569...

leetcode:35. Search Insert Position

描述Given a sorted array and a target value, return the index if the target is found. If not, return t...
  • Earl211
  • Earl211
  • 2017年03月16日 08:51
  • 141

leetcode 35. Search Insert Position

leetcode 35. Search Insert Position Given a sorted array and a target value, return the index if the...

leetcode35. Search Insert Position

35. Search Insert PositionGiven a sorted array and a target value, return the index if the target is...

LeetCode-Easy部分中标签为Array#35: Search Insert Position

确定一个有序数组中,插入目标值的索引位置,如果插入值已经存在,则直接返回它的索引值,如果不存在,确定插入后的索引位置。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[LeetCode]problem 35. Search Insert Position
举报原因:
原因补充:

(最多只允许输入30个字)