代码随想录Day01
力扣704
//左闭右闭
int i=0;
int j= nums.length;
while (i<=j){
int sum=i+j;
int mid= (int) Math.floor(sum/2);
if (nums[mid]==targrt){
return mid;
}else if (nums[mid]<targrt){
i=mid+1;
}else if (nums[mid]>targrt){
j=mid-1;
}
}
return -1;
力扣27
//暴力解法
/* int length= nums.length;
for (int i = 0; i < length; i++) {
if (nums[i]==targrt){
for (int j = i+1; j < length; j++) {
nums[j-1]=nums[j];
}
i--;
length--;
}
}
return length;*/
//双指针
/*
* 快指针:寻找新数组的元素
* 慢指针:指向更新 新数组的下标
* */
int low=0;
for (int fast = 0; fast < nums.length; fast++) {
if (nums[fast]!=targrt){
nums[low]=nums[fast];
low++;
}
}
return low;
查看18道真题和解析