目录:
704.二分查找
class Solution {
public int search(int[] nums, int target) {
int left = 0;
int 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;
}
}
27.移除数组
暴力解法
class Solution {
public int removeElement(int[] nums, int val) {
int size = nums.length;
for(int i = 0; i < size; i++){
if(nums[i] == val) {
for(int j = i; j < nums.length - 1; j++) {
nums[j] = nums[j + 1];
}
i--;
size--;
}
}
return size;
}
}
双指针方法
class Solution {
public int removeElement(int[] nums, int val) {
int slowIndex = 0;
for( int fastIndex = 0; fastIndex < nums.length; fastIndex++) {
if (val == nums[fastIndex]) {
}else {
nums[slowIndex] = nums[fastIndex];
slowIndex++;
}
}
return slowIndex;
}
}
977.有序数组的平方
class Solution {
public int[] sortedSquares(int[] nums) {
int slowIndex = 0;
int fastIndex = nums.length - 1;
int size = nums.length - 1;
int[] newNums = new int[nums.length];
while (slowIndex <= fastIndex) {
if (nums[fastIndex] * nums[fastIndex] > nums[slowIndex] * nums[slowIndex]) {
newNums[size] = nums[fastIndex] * nums[fastIndex];
fastIndex --;
}else{
newNums[size] = nums[slowIndex] * nums[slowIndex];
slowIndex ++;
}
size --;
}
return newNums;
}
}