代码随想录——数组篇

daxiawan2022 / 2023-09-02 / 原文

二分查找

题目链接
注意:求均值防溢出,left+(right-left)/2等价于(left + right)/2。
image

原地移除元素

题目链接
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。

  • 暴力求解,O(n^2)
  • 快慢指针,O(n)
    image

有序数组的平方

题目链接

  • 暴力求解O(n+nlogn):先求平方再排序
    image
  • 双指针O(n):两端求平方比较大小,大值放在ans数组当前尾端
    image

长度最小的子数组

题目链接

  • 暴力求解O(n^2)
  • 滑动窗口O(n)
    image

螺旋矩阵II

题目链接
题目:输入n ,输出n*n的螺旋矩阵。

  • 策略:模拟
  • 时间复杂度:O(n^2)
    image
    image

总结

  • 二维数组在内存中并不是连续地址,c++、java、python是行优先存储,即每行数据内存地址连续;matlab是列优先存储。