代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

704题主要注意一下区间的设置,另外要记得更新mid值,不然会陷入死循环。

class Solution {
public:
    int search (vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size() - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            if (nums[mid] > target) {
                right = mid - 1;
            }
            else if (nums[mid] < target) {
                left = mid + 1;
            }
            else if (nums[mid] == target) {
                return mid;
            }
        }
        return -1;
    }
};

27题就是普通的双指针计数

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int len = 0;
        int k= 0;
        while (k < nums.size() ) {
            if (nums[k] != val ) {
                nums[len++] = nums[k];
            }
            k++;
        }
        return len;
    }
};

  

posted @ 2024-06-25 15:14  清源风起时  阅读(88)  评论(0)    收藏  举报