行业知识
算法刷题Day1 | 704.二分查找、27.移除元素
2026-11-09 15:08:09
来源:互联网转载
目录
- 0 引言
- 1 二分查找
- 1.1 我的解题
- 1.2 修改后
- 1.3 总结
- 2 移除元素
- 2.1 暴力求解
- 2.2 双���针法(快慢指针)
- ♂️ 作者:海码007
- 专栏:算法专栏
- 标题:代码随想录算法训练营第一天 | 704.二分查找、27.移除元素
- ❣️ 寄语:书到用时方恨少,事非经过不知难!
0 引言
1 二分查找
- 文档讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
- 视频讲解:https://www.bilibili.com/video/BV1fA4y1o715/
- 做题状态:有思路但是不清晰,对于循环的判断条件还有区间的变换存在疑惑(这些就是二分法的易错点)
1.1 我的解题
class Solution {public: int search(vector& nums, int target) { int left, right, middle; left = 0; right = nums.size() - 1; if (right == left) { if (target == nums[left]) { return left; } else { return -1; } } while (right != left + 1) { middle = (right - left) / 2 + left; cout return middle; } else if (target nums[middle]) { left = middle; } else { right = middle; } } if (target == nums[left]) { return left; } else if (target == nums[right]) { return right; } else { return -1; } }};public: int search(vector int left, right, middle; left = 0; right = nums.size() - 1; while (right = left) { middle = (right - left) / 2 + left; cout return middle; } else if (target nums[middle]) { left = middle + 1; } else { right = middle - 1; } } return -1; }};public: int removeElement(vector int arraySize = nums.size(); for (int i = 0; i cout for (int j = i; j