代码随想录打卡第1天 | 704. 二分查找、27. 移除元素、977. 有序数组的平方
704. 二分查找 链接:力扣704 文章:代码随想录 视频:B站讲解 状态:✅ 第一想法 二分查找母题; 有闭区间和开区间两种解法: 闭区间:right 初始化为 nums.size()-1 ,是实右边界;在进入 while 循环时就要注意需要判断 left == right;同时每次移动边界都要从已经找到的地方往右或往左移动一步; 开区间:right 初始化为 nums.size() ,是虚右边界;在进入 while 循环时就要注意写 left < right;移动时左边界是 mid+1, 而右边界是 mid; 看完题解后的想法 —— 实现中遇到的困难 采用实变界进入循环的判断忘记了需要判断left == right; 代码 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-left)/2; if (nums[mid] == target) { return mid; } else if (nums[mid] > target) { right = mid-1; } else { left = mid+1; } } return -1; } }; 27. 移除元素 链接:力扣27 文章:代码随想录 视频:B站讲解 状态:⚠️ 第一想法 第一想法就是维护两个指针,left 找到 val 位置,而 right 从右边找不为val的值,当左右相遇说明找完了; ...