住房和城乡建设部的网站首页,wordpress地理定位,网站企业建设,郑州做网站多少钱LeetCode-704.二分查找
【错误】第一遍提交的代码
主要错误点#xff1a; 没弄清楚区间的定义导致#xff1a;r 在定义处的赋值和 if 判断之后 r 的复制没有想清楚#xff1b;没有搞清楚判断循环结束的条件#xff1b;没有搞明白区间的定义#xff0c;r 和 l 如何赋值 没弄清楚区间的定义导致r 在定义处的赋值和 if 判断之后 r 的复制没有想清楚没有搞清楚判断循环结束的条件没有搞明白区间的定义r 和 l 如何赋值如何判断
class Solution {public int search(int[] nums, int target) {int l 0;// 这里的赋值和while的判断条件矛盾会陷入死循环导致超时int r nums.length - 1; if (target nums[0] || target nums[nums.length - 1]) {return -1;}while (l r) {int mid (r l) / 2;if (nums[mid] target) {return mid;}if (nums[mid] target) {l mid1;}if (nums[mid] target) {r mid1;}}return -1;}
}【正确】第二遍提交代码
搞清楚区间的定义并判断左闭右开的区间范围如何判断r 和 l 的赋值以及while结束的条件
class Solution {public int search(int[] nums, int target) {
int l 0;int r nums.length;if (target nums[0] || target nums[nums.length - 1]) {return -1;}while (l r) {int mid (r l) / 2;if (nums[mid] target) {return mid;}if (nums[mid] target) {l mid1;}if (nums[mid] target) {r mid;}}return -1;}
}LeetCode-27.移除元素
【正确】双指针一次AC
因为不用考虑末尾的元素所以只要保证fast指针每次有和val相等的元素就跳过然后赋值给slow指针指向的元素即可。代码随想录给出的是相向双指针我用的是同向测试了一下结果差不多。
class Solution {public int removeElement(int[] nums, int val) {int slow 0, fast 0;while (fast nums.length) {if (nums[fast] val) {fast;continue;}nums[slow] nums[fast];fast;slow;}return slow;}
}