class Solution {
public int search(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
return find(nums, left, right, target);
}
public int find(int[] nums, int left, int right, int target) {
while (left < right) {
int middle = (left + right) / 2;
if (target > nums[middle]) {
left = middle + 1;
} else if (target < nums[middle]) {
right = middle - 1;
} else {
return middle;
}
}
if (left == right) {
if (target == nums[right]) {
return right;
}
}
return -1;
}
}
class Solution {
public int removeElement(int[] nums, int val) {
int fast = 0;
int slow = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[fast] != val) {
nums[slow++] = nums[fast++];
} else {
fast++;
}
}
return slow;
}
}