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