# 35. Search Insert Position

## 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

• 本文已收录于以下专栏：

举报原因： 您举报文章：35. Search Insert Position 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)