Day_21 —— L e e t C o d e 35 LeetCode 35 LeetCode35:搜索插入位置
解法一:
遍历数组,寻找大于等于target的数,如果出现了,返回下标index,否则(遍历完数组也没找到)返回数组长度(最大值,插入数组末尾)。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
for (int i = 0; i < nums.size(); ++i) {
if (nums[i] >= target) return i;
}
return nums.size();
}
};
解法二:二分查找。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if (nums.back() < target) return nums.size();
int left = 0, right = nums.size();
while (left < right) {
int mid = left + (right - left) / 2;
if (nums[mid] < target) left = mid + 1;
else right = mid;
}
return right;
}
};