- 博客(268)
- 收藏
- 关注
原创 239. 滑动窗口最大值
难点在于,窗口移动时,最大值可能掉出窗口,需要重新找出窗口内的最大值,时间复杂度为。于是,联想到单调栈,每进来一个元素,都可以直接找出当前的最大值/最小值。滑动窗口对应的数据结构是双端队列。最好是把第二个时间简化到。
2025-03-16 22:47:34
156
原创 287. 寻找重复数
然后构成一个链表,当有重复数字时,链表存在环,找到重复数字即找到链表环的入口,参考。由于题目规定数组中的数的范围是。,因此可以构造出下标。
2025-03-16 21:48:56
217
原创 1143. 最长公共子序列
两个字符串每个字符进行比较,想到二维动态规划,,否则就等于其之前的结果取最大值。个字符相同(注意这里的下标和。的下标的区别),那么。
2025-02-08 14:48:16
196
原创 93. 复原IP地址
的格式符合IP地址添加,不符合则不添加,主函数返回空的。来划分,所以回溯的终结条件就定为当。时,在此基础上判断是否需要。个字符到最后一个字符。的每一位开始判断,从。
2025-02-08 14:25:01
151
原创 41. 缺失的第一个正数
参考题解:https://leetcode.cn/problems/first-missing-positive/solutions/7703/tong-pai-xu-python-dai-ma-by-liweiwei1419。于是,自己设定一个“哈希表”,规定正整数i必须放在下标为i-1的位置上,例如:nums[0]=1, nums[1]=2,…,这样之后通过遍历这个“哈希表”,找到不符合上述规则的位置,从而找到缺失的第一个正数。哈希表时间复杂度符合,但是空间复杂度为O(n)
2025-02-02 22:01:42
229
原创 31. 下一个排列
参考题解:https://leetcode.cn/problems/next-permutation/solutions/80560/xia-yi-ge-pai-lie-suan-fa-xiang-jie-si-lu-tui-dao-将第一个元素和最后一个元素交换,将第二个元素和倒数第二个元素交换,以此类推…当没有比当前更大的数的时候,那么就返回最小的数,即直接从第0个元素进行。找到下一个排列,即找到下一个大于当前数的更大的数。,将降序数列(最大数)变换成升序数列(最小数)。
2025-02-01 21:10:32
371
原创 7. 整数反转
难点在于不使用64位数据结构存储的情况下,对反转后的数字的溢出判断,硬背吧,具体推导过程在官方题解。对整数进行反转,可以通过取余运算一位一位拿出来。
2025-01-30 18:29:49
109
原创 395. 至少有K个重复字符的最长子串
参考题解:https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/solutions/623991/jie-ben-ti-bang-zhu-da-jia-li-jie-di-gui-obla。
2025-01-30 18:13:58
215
原创 240. 搜索二维矩阵||
参考题解:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf。将矩阵旋转45度,可以看作一个二叉搜索树。假设以左下角元素为根结点,
2025-01-29 19:43:54
737
原创 152. 乘积最大子数组
因为有可能一正一负,导致结果不能最大,需要同时考虑。另外,题目中严格规定最大乘积保证是一个。,可能正正得正,也可能负负得正。,那么就重新初始化为。
2025-01-29 19:12:42
395
原创 96. 不同的二叉搜索树
为根结点,其左子树构成的二叉搜索树的个数和右子树构成的二叉搜索树的个数相乘。的序列长度为n的二叉搜索树的个数。(空树也是一种二叉搜索树)的不同二叉搜索树的个数。
2025-01-29 18:29:38
394
原创 美团3月9日笔试题
注意注释的所有内容!注意ACM模式答案要打印输出,不要return。第四题:小美的朋友关系 3/30。第一题:小美的平衡矩阵。第二题:小美的数组询问。第五题:小美的区间删除。
2024-03-15 22:42:31
601
原创 912. 排序数组(快速排序)
设定pointer作为最终要返回的pos,实际代表的是pivot的位置,其左边元素均小于pivot,右边元素均大于pivot。于是对区间内元素进行遍历,如果小于pivot,将其放在pointer的位置,并将pointer+1。找到pivot(两个方法:1. 取第一个值;2. 取随机值),并。遍历结束后,将pivot放到pointer它应该在的位置。返回pointer(即pos)重点:partition。
2024-03-01 21:40:08
290
原创 Redis速学
Redis是一个开源的内存数据库,它主要用于数据缓存和持久化。其数据存储在内存中,这使得它具有非常快的读写速度。Redis支持多种数据结构,包括字符串、哈希、列表、集合和有序集合,这使得它非常灵活,能够适应各种不同的数据处理需求。此外,Redis也支持数据持久化,可以将数据保存到磁盘上,确保数据不会因服务器重启而丢失。
2024-02-29 20:04:30
1099
原创 188. 买卖股票的最佳时机 IV(动态规划)
注意:在初始化的时候,遍历奇数位状态不能在for循环的判断语句中判断,因为不符合条件会直接跳出循环导致初始化失败,应该在自增操作中进行约束。次交易,只需要将状态扩展到。即可,其余操作都是一样的。III 中要求是最多。次交易,本题中是最多。
2024-02-01 10:54:11
315
原创 72. 编辑距离(多维动态规划)
根据目前的经验来看,针对于两个字符串相关问题使用多维动态规划的解决方法,通常要设置。注意:由于存在字符串为空的情况,于是我们设置。
2024-01-31 11:18:00
430
TA创建的收藏夹 TA关注的收藏夹
TA关注的人