文档讲解:代码随想录:数组理论基础
思路:今天的题目都是简单题, 第一个是基础的二分查找,第二个移除元素题解使用的是快慢指针,我用的也是双指针不过是一头一尾,思路差不多。
LeetCode704. 二分查找
class Solution {
public int search(int[] nums, int target) {
int left=0;
int right=nums.length - 1;
while (left <= right) {
int middle = left + ((right - left) / 2);
if (nums[middle] > target) {
right = middle - 1;
} else if (nums[middle] < target) {
left = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
LeetCode27. 移除元素
class Solution {
public int removeElement(int[] nums, int val) {
if(nums.length == 0){
return 0;
}
int start = 0;
int end = nums.length-1;
while(start < end){
if(nums[start]==val){
if(nums[end]!=val){
int num = nums[start];
nums[start] = nums[end];
nums[end] = num;
start++;
end--;
}else if(nums[end]==val){
end--;
}
}else if(nums[start]!=val){
start++;
}
}
if(nums[start] == val){
return start;
}else{
return start+1;
}
}
}