数组理论基础
-
数组下标都是从0开始的
-
数组内存空间的地址是连续的
因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址
数组的元素是不能删的,只能覆盖
Leetcode 704.二分查找
二分查找
class Solution {
public int search(int[] nums, int target) {
int low=0;
int high=nums.length -1;
while(true){
int mid=(low=high)/2;
if(nums[mid]>target){
high=mid-1;
}
else if(nums[mid]<target){
low=mid+1;
}
else if(nums[mid]==target){
return mid;
}
else if (low>high) {
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;
}
}