35 搜索插入位置

112 阅读1分钟

35 搜索插入位置

LeetCode

这个题和704二分查找题是很类似的, 相同的逻辑, 若找到则返回所在的索引值, 未找到则返回tag值应在数组的位置的索引值, 只需在704题的代码做一点点改动就行了, 对比基本的704题的二分法逻辑可以得到如下代码.

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {

    int left = 0;
    int right = nums.size();

    while (left < right)
    {
      int middle = (left + ((right - left) >> 1));
      if (nums[middle] == target)
      {
        return middle;
      }
      else if (nums[middle] < target)
      {
        left = middle + 1;
      }
      else if (nums[middle] > target)
      {
        right = middle;
      }
    }

      return right;
    }
};