代码随想录-数组篇

目录

  • 数组知识点
  • 解题知识点
    • 二分法
    • 双指针法
    • 滑动窗口
    • 模拟行为

数组知识点

数组中的元素在存储空间中的位置是连续的。
进阶:一个24的数组,不是连续的8个位置,而是连续的两条14存储空间

解题知识点

二分法

判断条件为

while left < right:(左闭右开)while left <= right:(左闭右闭)

时间复杂度:O(logn)
题目:
704
35.搜索插入位置(opens new window)
34.在排序数组中查找元素的第一个和最后一个位置(opens new window)
69.x 的平方根
367.有效的完全平方数

双指针法

**双指针法(快慢指针法)*通过一个快指针和慢指针在一个for循环下完成两个for循环的工作

  • 暴力解法时间复杂度:O(n^2)
  • 双指针时间复杂度:O(n)

题目:
27.移除元素
26.删除排序数组中的重复项
283.移动零
844.比较含退格的字符串
977.有序数组的平方

滑动窗口

滑动窗口: 就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果

相关题目:
209. 长度最小的子数组
904.水果成篮(opens new window)
76.最小覆盖子串(opens new window)

模拟行为

题目:59.螺旋矩阵II
good solution: 写出来从左到右,从上到下,从右到左,从下到上,并循环
Best solution: 每次画边后,将方向向量(dx, dy)旋转90°后得到(dy, -dx)

你可能感兴趣的:(算法,算法,数据结构,力扣,list)