LeetCode704.二分查找:
题目链接:https://leetcode.cn/problems/binary-search/
思路:
因为数组是有序数组,所以将target与中间位置的元素进行比较可以迅速确定目标元素在数组的左半或者右半,之后重复操作,直到找到目标元素。
注意:
定义target的区间有两种情况[left,right]、[left,right),这两种情况在循环边界判断有所不同。左闭右闭时while(left <= right),左闭右开时while(left < right)。
LeetCode27.移除元素:
题目链接:. - 力扣(LeetCode)
思路:
一种方法是遍历数组中所有元素,找到一个目标元素就进行删除并将之后的元素全部前移。另一种是使用双指针法,一个指针寻找元素,一个指针记录新数组。
时间复杂度:O(n)
空间复杂度:O(1)
总结:双指针法是我第一次见到,他在处理这类问题上确实比暴力遍历来的快,而且也很方便。