Leetcode 704.二分查找
答案
1.左闭右闭区间:[left, right]
class Solution {
public int search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int middle = (left + right)/2;
if (nums[middle] > target){
right = middle - 1;
}
else if (nums[middle] < target){
left = middle + 1;
}
else return middle;
}
return -1;
}
}
2.左闭右开区间:[left, right)
class Solution {
public int search(int[] nums, int target) {
int left = 0, right = nums.length;
while (left < right) {
int middle = left + ((right - left) >> 1);
if (nums[middle] > target){
right = middle;
}
else if (nums[middle] < target){
left = middle + 1;
}
else return middle;
}
return -1;
}
}
LeetCode 27.移除元素
答案
class Solution {
public int removeElement(int[] nums, int val) {
int slowIndex = 0;
for (int fastIndex = 0; fastIndex < nums.length; fastIndex++){
if (nums[fastIndex] != val){
nums[slowIndex] = nums[fastIndex];
slowIndex ++;
}
}
return slowIndex;
}
}