leetcode做题心得
菜鸟的Zoom之旅
这个作者很懒,什么都没留下…
展开
-
【leetcode】前缀和
内容摘抄自: 小而美的算法技巧:前缀和数组 | labuladong 的算法小抄看这个 数组,若想求索引区间 内的所有元素之和, 就可以通过 得出。 如leetcode 304:注意任意子矩阵的元素和可以转化成它周边几个大矩阵的元素和的运算: 而这四个大矩阵有一个共同的特点,就是左上角都是 原点。那么做这道题更好的思路和一维数组中的前缀和是非常类似的,我们可以维护一个二维 数组,专门记录以原点为顶点的矩阵的元素之和,就可以用几次加减运算算出任何一个子矩阵的元素和:值得注意的是 preSum数组原创 2023-08-12 23:29:03 · 294 阅读 · 0 评论 -
【leetcode】394. 字符串解码
这里用到两个栈,(也有人用一个栈的 stack<pair<string, int>> st,其本质也是两个栈,为了更清楚的表达,这里我们采用两个栈))由于在遍历字符串s的过程中,会冲掉前面保存的数组和字符串,所以要选用栈来对字符串和数字进行保存。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。//4、如果是']' 将数字和字符栈各取出,然后拼接成新的临时字符串。首先不可避免的是,要记录两个值,一个是字符串,一个是字符串重复的次数,即数字。给定一个经过编码的字符串,返回它解码后的字符串。原创 2023-08-06 14:52:25 · 162 阅读 · 0 评论 -
轮转数组——左旋数组,右旋数组
左旋转字符串:【1234567】—左旋3下—>【4567123】右旋转字符串:【1234567】—右旋3下—>【5671234】原创 2023-07-18 21:59:43 · 258 阅读 · 0 评论 -
和为 K 的子数组——前缀和+哈希
注意:此题不能使用滑动窗口,因为数组中可能会出现负数。也就是说右指针向后移1位不能保证区间会增大,左指针向后移1位也不能保证区间和会减小。即sum[j] = sum[i]-k;这个sum[j]的个数就是数组中和为k的连续子数的个数。已知sum[i]是从nums[0~i]的和,sum[i-1]是nums[0~i-1]的和。则存在一个j(0<=j<=i) 使得sum[i]-sum[j] = k;则有 sum[i] - sum[i-1] = nums[i]在本题解中,在循环中完成sum[i]的计算即sum。原创 2023-07-18 21:19:46 · 691 阅读 · 0 评论 -
链表中环的入口节点——C++
链表中环的入口节点——C++原创 2022-07-08 10:27:14 · 178 阅读 · 0 评论 -
循环求余——C/C++
循环取余 C++原创 2022-07-03 20:48:49 · 425 阅读 · 0 评论