随笔分类 -  力扣解题笔记

摘要:# 【数组】——螺旋矩阵 模拟顺时针画矩阵的过程: 1.填充上行从左到右 2.填充右列从上到下 3.填充下行从右到左 4.填充左列从下到上 由外向内一圈一圈这么画下去。每一条边都要遵守同一原则(左闭右开或左开右闭) ``` // C++版本 class Solution { public: vect 阅读全文
posted @ 2023-02-09 21:04 我好想睡觉啊 阅读(40) 评论(0) 推荐(0)
摘要:#【数组】——长度最小的子数组 ##一、暴力解法 1.第一层循环i,确立起始位置 2.第二层循环j,确立终止位置 3.寻找sum大于目标的序列,计算序列长度j-i+1 时间复杂度:$O(n^2)$ 空间复杂度:$O(1)$ ``` // C++版本 class Solution { public: 阅读全文
posted @ 2023-02-09 13:00 我好想睡觉啊 阅读(45) 评论(0) 推荐(0)
摘要:# 【数组】——有序数组的平方 暴力解法:先平方后排序 时间复杂度$O(n+nlogn)=O(nlogn)$ ``` # 力扣运行出错,但测试可用 class Solution(object): def sortedSquares(self, nums): """ :type nums: List[ 阅读全文
posted @ 2023-02-07 21:29 我好想睡觉啊 阅读(32) 评论(0) 推荐(0)
摘要:# 【数组】——移除元素 **由于数组的存储空间是连续的,不能直接删除元素,只能覆盖** 暴力解法: 1.获得数组长度 2.开始第一层循环,寻找要删除的元素(遍历数组元素) 3.寻找到删除元素,开始第二层循环,该元素后的数依次相前移(更新数组) 3.返回数组当前长度 时间复杂度为$O(n^2)$,空 阅读全文
posted @ 2023-02-07 20:10 我好想睡觉啊 阅读(34) 评论(0) 推荐(0)
摘要:# [数组]——二分查找 1.设定左右区间和数组长度,计算中间数的索引 2.根据左右区间的距离开始循环,并判断目标数与中间数的大小关系,缩小区间 3.返回目标数在数组中的索引 **注意数组区间的闭合情况!!!** 图1为数组左闭右闭的情况;图2为数组左闭右开的情况。代码在细节上有所不同。 ![ima 阅读全文
posted @ 2023-02-03 22:19 我好想睡觉啊 阅读(49) 评论(0) 推荐(0)
摘要:# 算法性能分析 ## 时间复杂度 时间复杂度是一个函数,它描述算法的运行时间。 假设数据量为$n$,算法的操作数据量为$f(n)$,随着数据量$n$的增大,算法的执行时间和$f(n)$的增长率会按照相同的速度增长,这就是时间复杂度,记为$O(f(n))$,其中$O$表示算法时间复杂度的一般情况(严 阅读全文
posted @ 2023-02-02 20:45 我好想睡觉啊 阅读(75) 评论(0) 推荐(0)