数组理论基础
- 数组是存放在连续内存空间上的相同类型数据的集合
- 下标从0开始
题目:
二分查找
704. 二分查找
题目链接:https://leetcode-cn.com/problems/binary-search/
使用二分法的前提条件:有序+无重复元素
模板:左闭右闭区间
//重写版 左闭右闭
class Solution {
public int search(int[] nums, int target) {
int left = 0,right = nums.length-1;
while(left <= right){
int mid = left + (right-left)/2;
if(nums[mid] == target){
return mid;
}else if(nums[mid]>target){
right = mid -1;
}else{
left = mid + 1;
}
}
return -1;
}
}
35.搜索插入位置
题目链接:https://leetcode-cn.com/problems/search-insert-position/
34.在排序数组中查找元素的第一个和最后一个位置(两次调用二分法)
题目链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
69.x 的平方根
题目链接:https://leetcode-cn.com/problems/sqrtx/
本题是二分查找的典型应用场景:查找一个有确定范围的整数。根据 单调性 逐渐缩小搜索范围。
367.有效的完全平方数
题目链接:https://leetcode-cn.com/problems/valid-perfect-square/
双指针(快慢指针)
27. 移除元素
题目地址:https://leetcode-cn.com/problems/remove-element/
26.删除排序数组中的重复项
题目地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
283.移动零
题目地址:https://leetcode-cn.com/problems/move-zeroes/submissions/
844.比较含退格的字符串 (难)
题目地址:https://leetcode-cn.com/problems/backspace-string-compare/submissions/
977.有序数组的平方
题目地址:https://leetcode-cn.com/problems/squares-of-a-sorted-array/
滑动窗口
209.长度最小的子数组
题目链接: https://leetcode-cn.com/problems/minimum-size-subarray-sum/
904.水果成篮
题目链接:https://leetcode-cn.com/problems/fruit-into-baskets/
76.最小覆盖子串
题目链接: