/**
* 复杂写法,思路错了
* @param nums
* @param target
* @return
*/
public int search01(int[] nums, int target){
int i=nums.length;
int up=i-1;
int down=0;
int between=up/2;
int flag=0;
while(!(((up-down)<=1)&&(target!=nums[up])&&(target!=nums[down]))){
if(target<nums[between]){
up=between;
between=(up+down)/2;
}else if(target==nums[between]){
flag=1;
break;
}else{
down=between;
between=(up+down)/2;
if(target==nums[up]){
flag=1;
between=up;
break;
}
}
}
if(flag==1){
return between;
}else{
return -1;
}
}
使用区间思维优化后发现简化非常多
27移除元素
实现了暴力求解
public int removeElement(int[] nums, int val) {
int flag=-0;
int i;
int newlength=nums.length;
for(i=0;i<newlength;i++){
if(nums[i]==val){
newlength--;
for(int j=i;j<newlength;j++){
nums[j]=nums[j+1];
}
}
if(nums[i]==val) i--;
}
return newlength;
}
双指针法待更新