# 35. Search Insert Position

60人阅读 评论(0)

## Title

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Here are few examples.

[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0


## Solution

### one

class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int n = nums.size();

int low = 0, high = n-1, mid=0;

while (low <= high) {
mid = low + (high-low)/2;
if (nums[mid] == target) {
return mid;
}
else if (nums[mid] < target) {
low = mid+1;
}
else {
high = mid-1;
}
}

if (nums[mid] > target) {
return mid;
}

return mid+1;
}
};

runtime: 8ms

### two

date: 2016.9.16

class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int n = (int)nums.size();
int low = 0, high = n, mid;
while (low < high) { //输入[low, high); high == nums.size()
mid = low + (high-low)/2;
if (nums[mid] >= target) { //继续查找[low, mid]
high = mid;
}
else { //[mid+1, high]
low = mid+1;
}
}
return low; //返回[low, high]
}
};

runtime: 6ms

0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：20719次
• 积分：1130
• 等级：
• 排名：千里之外
• 原创：97篇
• 转载：0篇
• 译文：0篇
• 评论：0条
评论排行