0
点赞
收藏
分享

微信扫一扫

704. 二分查找、27. 移除元素


704. 二分查找

该二分法套用的我自己的模板,​​我的模板链接​​

class Solution {
public int search(int[] nums, int target) {
int i = 0;
int j = nums.length - 1;
if(target == nums[j]) return j;
while(i < j){
int mid = i + (j - i)/2;
if(nums[mid] > target){
j = mid;
}else{
i = mid + 1;
}
}
if(i - 1 >= 0 && nums[i - 1] == target){
return i - 1;
}
return -1;
}
}

704. 二分查找、27. 移除元素_i++

27. 移除元素

双指针法:
定义快慢指针,快指针遍历数组,寻找val之外的元素,组成不含val元素的新数组;
慢指针指向新数组的元素,一次循环后需要右移一位以便接收下次循环快指针找到的元素,当快指针遍历完nums,快指针的下标实际上就是新数组的长度。

class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
int j = 0;
for(;i < nums.length;i++){
if(nums[i] != val){
nums[j++] = nums[i];
}
}
return j;

}
}

704. 二分查找、27. 移除元素_i++_02


举报

相关推荐

0 条评论