数组

二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public int search(int[] nums, int target) {
int start = 0;
int end = nums.length-1;
int mid = 0;
while(start<=end){
mid = (start+end)/2;
if(nums[mid]==target){
return mid;
}else if(nums[mid]>target){
end = mid - 1;
}else if(nums[mid]<target){
start = mid + 1;
}
}
return -1;
}
}

移除元素

我是傻逼,从右往左找满足条件的

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public int removeElement(int[] nums, int val) {
int left = 0;
for(int i=0; i<nums.length; i++){
if(nums[i]!=val){
nums[left] = nums[i];
left++;
}
}
return left;
}
}