![](https://img-blog.csdnimg.cn/direct/64fae7c490574d2b92098ca45ab4049e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leetcode
刷题专栏
Kai2026
大学生一枚,C/C++,Linux在学,热爱玩游戏。
展开
-
基础动态规划 - 过河卒
过河卒原创 2024-04-28 21:13:09 · 222 阅读 · 0 评论 -
LeetCode - 买卖股票的最佳时机
买卖股票的最佳时机原创 2024-04-28 20:41:21 · 370 阅读 · 0 评论 -
AB5 点击消除
AB5 点击消除原创 2024-04-22 21:51:21 · 354 阅读 · 0 评论 -
NC398 腐烂的苹果
NC398 腐烂的苹果原创 2024-04-22 21:42:43 · 472 阅读 · 0 评论 -
LeetCode - 边积分最高的节点
LeetCode - 边积分最高的节点原创 2024-04-05 21:16:11 · 219 阅读 · 0 评论 -
LeetCode - 移除石子使总数最小
1962. 移除石子使总数最小原创 2024-04-04 21:06:26 · 439 阅读 · 1 评论 -
LeetCode - 岛屿数量
LeetCode - 岛屿数量原创 2024-03-31 21:06:11 · 631 阅读 · 0 评论 -
LeetCode - 赢得比赛需要的最少训练时长
LeetCode - 赢得比赛需要的最少训练时长原创 2024-03-30 21:44:49 · 164 阅读 · 0 评论 -
LeetCode - 数组乘积中的不同质因数数目
LeetCode - 数组乘积中的不同质因数数目原创 2024-03-30 21:18:57 · 252 阅读 · 0 评论 -
LeetCode - 字母板上的路径
LeetCode - 字母板上的路径原创 2024-03-30 20:34:17 · 295 阅读 · 0 评论 -
LeetCode - 股票平滑下跌阶段的数目(分组循环)
股票平滑下跌阶段的数目原创 2024-03-28 20:45:19 · 251 阅读 · 0 评论 -
LeetCode - 大于等于顺序前缀和的最小缺失整数
LeetCode - 大于等于顺序前缀和的最小缺失整数原创 2024-03-26 21:28:58 · 233 阅读 · 0 评论 -
LeetCode - 执行子串操作后的字典序最小字符串
LeetCode - 执行子串操作后的字典序最小字符串原创 2024-03-26 20:24:56 · 528 阅读 · 0 评论 -
LeetCode - 存在重复元素
存在重复元素原创 2024-03-21 20:44:01 · 391 阅读 · 0 评论 -
1457. 二叉树中的伪回文路径
1457. 二叉树中的伪回文路径原创 2024-03-20 21:32:30 · 317 阅读 · 0 评论 -
多源BFS - 01矩阵
到最近的0的距离,对每一个非0的位置进行搜索,找到最短的距离即可,但如果对每一个非0的点都进行一次搜索的话,肯定是会超时的。这里可以考虑,将所有0点想象成一个0点(超级0)。然后找到所有1点到超级0的距离即可。原创 2024-03-20 20:59:58 · 296 阅读 · 0 评论 -
两整数之和
两整数之和原创 2024-03-16 20:15:50 · 352 阅读 · 0 评论 -
面试题 01.01. 判定字符是否唯一
判定字符是否唯一原创 2024-03-15 19:42:07 · 376 阅读 · 0 评论 -
LeetCode - 和可被K整除的子数组
一个连续的区间可以被k整除,如果用前缀和就是(arr[r] - arr[l - 1]) / k = 0;当然,在计算机语言里面,用除法判断结果是否为0不行,需要用%,(arr[r] - arr[l - 1]) % k = 0,其实可以转化一下,arr[r] % k = arr[l - 1] % k,也就是说,在前缀和数组中,找到等于arr[l - 1] % k的数字出现的个数即可。如何知道某个数字出现的个数?使用哈希,哈希可以完成此操作。题目描述:一个连续的区间可以被k整除。原创 2024-03-14 20:44:24 · 446 阅读 · 0 评论 -
LeetCode - 和为K的子数组
看到这道题的时候,感觉还挺简单的,找到数组中和为k的连续子数组的个数,无非就是一个区间减去另一个区间的和等于k,然后想到了用前缀和来解决这道问题。再算连续子数组出现的个数的时候,可以使用暴力枚举,将个数全部算出来。然后在暴力枚举的基础上进行优化。代码优化,如何对这个代码进行优化?最开始我想到了双指针,如果都是正数,前缀和数组保证严格单调递增,第二层for循环可以只要可以判断成功一次即可,但是题目中给的范围是存在负数和0的,所以双指针是不行的。换一种思路,对公式下手。原创 2024-03-12 21:45:18 · 374 阅读 · 0 评论 -
LeetCode - 寻找数组的中心
我的想法是搞两个数组,一个来存从左到右数组中的前缀和,另一个来存从右到左数组中的前缀和。然后在一个for循环中去判断两个前缀和数组的值是否相等就可以了。在读题读到左侧元素之和等于右侧所有元素之和的时候,我觉得可以用前缀和,然后结合下面的示例,模拟了一下发现确实可以。学C++的小伙伴在用vector初始话的时候,要记得,从右到左的vector容量要比原数组大2。我写完之后又看了一下官方的解法,发现,比我写的好多了,用的前缀和 + 简单推理。原创 2024-03-11 20:44:05 · 477 阅读 · 0 评论 -
Leetcode - 二分查找 | 在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置暴力解法:从前往后扫描,记录下来遇到目标数字的位置即可。原创 2024-03-10 15:04:04 · 559 阅读 · 0 评论 -
904. 水果成篮
leetcode练习原创 2024-03-08 20:54:35 · 373 阅读 · 0 评论 -
1004. 最大连续1的个数 III
leetcode练习原创 2024-03-05 20:35:21 · 377 阅读 · 0 评论 -
LeetCode --- 无重复字符的最长子串
假如现在队列中为abc,下一次入队的是字符b,那么b字符就出现了两次,需要出队,直到字符b出现的次数为1次。删除队头a,此时队列为bcb,继续出队变成cb,b出现的次数就变成1次了。可以使用暴力枚举 + 哈希表,哈希表来判断是否重复,枚举来判断每一种情况,需要开两层for循环,时间复杂度n^2。示例1中 abc | bca | cab 都符合题意。找到无重复的最长连续字符串。原创 2024-03-03 20:50:14 · 413 阅读 · 0 评论 -
LeetCode --- 长度最小的子数组(滑动窗口)
滑动窗口算法是一种用于解决数组或者列表中子数组或者字串问题的方法,通常用于在给定数据上执行连续区间的操作,算法基本思想是维护一个固定大小或不定大小的窗口,通过移动窗口的起始位置和结束位置来遍历整个数据。在每个窗口位置,都可以进行一些判断。初始化窗口的起始和结束位置。将窗口内的元素用于计算或判断。移动窗口的起始和结束位置。重复步骤2和步骤3,直到窗口的结束位置达到数据集的末尾。原创 2024-03-02 21:43:35 · 471 阅读 · 0 评论 -
LeetCode --- 三数之和
在做这一道题的时候,脑海里先想出来的是暴力方法,一次排序,将这个数组变为有序的,再通过三次for循环来寻找满足条件的数字,然后将符合条件的数组与之前符合条件的数组进行一一对比,来完成去重的目的,时间复杂度光是三层for循环就达到了n^3,再加上一个sort和count函数,nlogn + mn^3。当l + r == -i的时候,l的下一位或者r的上一位跟l或r本身是相同的,就说明出现了重复的情况,也有可能是i跟i的下一位相同。或者说是r + l > -i,说明l太小,l++。原创 2024-03-02 20:34:12 · 428 阅读 · 0 评论 -
双指针算法
双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个指针(特殊情况甚至可以多个),两个指针或是同方向访问两个链表、或是同方向访问一个链表(快慢指针)、或是相反方向扫描(对撞指针),从而达到我们需要的目的。原创 2024-02-29 21:37:07 · 317 阅读 · 0 评论