您的位置:首页 > 其它

[LeetCode] 35. Search Insert Position

2016-07-20 12:22 211 查看
思路:

这连续几道二分法的题大同小异, 上来先判断是否应该插入在两端, 如果不是就进入循环.

依然是二分法的思想, 只不过在切分组的时候拿target跟mid邻边的元素比较一下, 如果发现应该插到他们当中去, 就找到了结果.

int searchInsert(vector<int>& nums, int target) {
if (target <= nums[0]) return 0;
if (target > nums.back()) return nums.size();
int left = 0, right = nums.size() - 1;
while (left <= right) {
int mid = (left + right) >> 1;
if (target == nums[mid])
return mid;
else if (target < nums[mid]) {
if (target > nums[mid - 1])
return mid;
right = mid - 1;
}
else {
if (target <= nums[mid + 1])
return mid + 1;
left = mid + 1;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 搜索