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