35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。

| 示例 1:
输入: [1,3,5,6], 5
输出: 2 | 示例 2:
输入: [1,3,5,6], 2
输出: 1 | 示例 3:
输入: [1,3,5,6], 7
输出: 4 | 示例 4:
输入: [1,3,5,6], 0
输出: 0>

| | —- | —- | —- | —- |

解题思路

二分查找

代码示例

  1. class Solution {
  2. public:
  3. int searchInsert(vector<int>& nums, int target) {
  4. int left = 0;
  5. int right = nums.size();
  6. while(left < right) {
  7. int mid = left + ( (right -left)/2);
  8. if (nums[mid] == target) return mid;
  9. else if (nums[mid] < target) left = mid +1;
  10. else right = mid;
  11. }
  12. return right;
  13. }
  14. };