![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
文章平均质量分 70
陌然。。
这个作者很懒,什么都没留下…
展开
-
【209. 长度最小的子数组】
这道题目的精髓是窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。原创 2024-07-21 22:12:32 · 281 阅读 · 0 评论 -
【977. 有序数组的平方】
时间复杂度:O(n)空间复杂度:O(1)。除了存储答案的数组以外,我们只需要维护常量空间。数组其实是有序的,数组平方的最大值就在数组的两端,考虑双指针法,i指向起始位置,j指向终止位置。定义一个新数组result,和A数组一样的大小,让k指向result数组终止位置,先将最大值塞入result最后一个,然后递减。原创 2024-07-08 23:21:34 · 426 阅读 · 0 评论 -
【844. 比较含退格的字符串】
时间复杂度:O(A+B+C),其中 A 和 B 分别为字符串 S 和 T 的长度,C代表处理后的字符串长度。我们需要遍历两字符串和处理后的字符串各一次。空间复杂度:O(1)。对于每个字符串,我们只需要定义一个指针和长度即可。首先要获取经过退格字符处理后的最终字符串s和字符串长度slowIndex。得到最终字符串后进行比较。原创 2024-07-07 22:55:51 · 379 阅读 · 0 评论 -
【26. 删除有序数组中的重复项】
时间复杂度:O(n),其中 n 是数组的长度。快指针和慢指针最多各移动 n 次。空间复杂度:O(1)。只需要使用常数的额外空间。数组中至少包含一个元素,在删除重复元素之后也至少剩下一个元素,因此 nums[0] 保持原状即可,从下标 1 开始删除重复元素。覆盖次数 + 1个首元素 = 新的nums长度。原创 2024-07-06 23:38:23 · 340 阅读 · 0 评论 -
【27. 移除元素】
时间复杂度:O(n)空间复杂度:O(1)通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。原创 2024-07-06 22:47:16 · 443 阅读 · 0 评论 -
【69. x 的平方根 】
时间复杂度:O(logx),即为二分查找需要的次数。空间复杂度:O(1)。比较中间元素 middle 的平方与 x 的大小关系,并通过比较的结果调整上下界的范围。原创 2024-07-06 21:38:00 · 500 阅读 · 0 评论 -
【34. 在排序数组中查找元素的第一个和最后一个位置】
时间复杂度: O(logn) ,其中 n 为数组的长度。二分查找的时间复杂度为 O(logn),一共会执行两次,因此总时间复杂度为 O(logn)。空间复杂度:O(1)。只需要常数空间存放若干变量。主要利用二分法查找target在数组范围中的左右边界,注意左右边界的查找条件。因为最后left == right + 1;,所以leftBorder = right;原创 2024-07-04 22:54:06 · 403 阅读 · 0 评论 -
【35. 搜索插入位置】
时间复杂度:O(log n)空间复杂度:O(1)采用二分法寻找target在nums中的下标,即middle,如果不在则返回left。原创 2024-07-01 23:12:48 · 912 阅读 · 0 评论 -
【704. 二分查找】
时间复杂度:O(log n)空间复杂度:O(1)注意:二分查找法要坚持循环不变量原则。原创 2024-06-30 16:48:05 · 498 阅读 · 0 评论