
leetcode
leetcode
雾散了来我身边
这个作者很懒,什么都没留下…
展开
-
leetcode 1488 避免洪水泛滥
用TreeSet实现二分法的查找。原创 2023-10-15 11:14:02 · 232 阅读 · 0 评论 -
关于二叉树序列化和反序列化
将二叉树序列化,转换为字符串,空的子树用n代替,这样不需要中序遍历也可以生成二叉树。生成二叉树递归返回树节点。原创 2023-09-04 11:21:58 · 106 阅读 · 0 评论 -
leetcode 375 猜数字大小2
这里从后往前遍历,因为后面用到了dp[k + 1][r],所以需要从后往前遍历。dp[i][j] 表示区间左边是i,右边是j。原创 2023-09-15 10:34:26 · 88 阅读 · 0 评论 -
leetcode 376 摆动序列
【代码】leetcode 376 摆动序列。原创 2023-09-20 10:09:16 · 60 阅读 · 0 评论 -
leetcode 373 查找和最小的K对数字
第一个数组长度最小,优化一下。原创 2023-09-14 11:10:11 · 82 阅读 · 0 评论 -
leetcode 371. 两整数之和
按位与:只有都为1才为1,否则都为0,如果两个数按位与再左移一位,就能代表所有要进位的位。异或:不同为1,相同为0,刚好符合加法,但是缺少进位的可能。原创 2023-09-05 10:05:59 · 122 阅读 · 0 评论 -
背包问题.
0-1背包问题 填满容量为n的背包,用nums数组里的元素,每个元素只能用一次。dp[i] = dp[j - nums[i]] (i是物品下标,j是重量)完全背包可以使用无数次,先遍历物品,在遍历重量,重量正序。如果追求顺序,那么先遍历重量,再遍历物品。如果求的是次数,即装满目标容量有几种方法。当求的是组合数即不追求顺序。先遍历物品,在遍历重量。原创 2023-09-20 14:40:54 · 99 阅读 · 0 评论 -
leetcode 1306 跳跃游戏3
深度遍历,但是不回溯,用一个数组判断当前下标是否访问过,如果再次访问到该下标说明当前下标无法满足,直接返回false。原创 2023-08-30 10:36:01 · 85 阅读 · 0 评论 -
leetcode 365 水壶问题
总共有八种选择:第一种倒满x,第二种倒满y,第三种清空x,第四种清空y,第五种x 倒给 y y能装满 ,第六种 x 倒给 y x倒完,。有一个水壶容量或者两个水壶加起来总容量为目标容量。这里用深度遍历,时间超时。原创 2023-08-31 11:04:57 · 454 阅读 · 0 评论 -
leetcode 2560打家劫舍5
二分法,对具体的数值而不是数组下标,因为找的是金额,判断数组中能偷的并且数组最大值<= mid的个数是否>= k。原创 2023-09-19 20:30:57 · 251 阅读 · 0 评论 -
leetcode 368 最大整除子集
使用动态规划,这里需要注意因为返回的数字集合,所以还需要一个之前下标数组来存储dp[i]前一个数字的下标。原创 2023-09-02 11:56:27 · 68 阅读 · 0 评论 -
leetcode 474 一和零
0-1背包问题,但是有两个背包,两个背包嵌套循环。原创 2023-09-21 21:47:31 · 73 阅读 · 0 评论 -
leetcode 378 有序矩阵中第K小的元素
【代码】leetcode 378 有序矩阵中第K小的元素。原创 2023-09-25 09:51:55 · 65 阅读 · 0 评论 -
leetcode 901 股票价格跨度
用栈来求解上一个最大的元素。原创 2023-10-08 10:24:49 · 161 阅读 · 0 评论 -
leetcode 823 带因子的二叉树
如果两个节点值不同,要乘2,因为两个节点可以互换位置。原创 2023-08-29 11:12:08 · 326 阅读 · 0 评论 -
leetcode 347 前k个高频词汇
前k个一般都用堆,前k个明显用大顶堆。原创 2023-08-22 10:34:03 · 62 阅读 · 0 评论 -
leetcode 1267 统计参与通信的服务器
思路:首先记录所有为1的服务器数,然后减去服务器所在行和列都是有它一个(被孤立)的服务器数。原创 2023-08-24 11:00:28 · 85 阅读 · 0 评论 -
leetcode 355 设计推特
用链表存储用户发送的每一个推特,用堆获取最先的10条动态。原创 2023-08-23 11:37:20 · 2441 阅读 · 0 评论 -
leetcode 343 整数拆分
一般遇到这种拆分的都是动态规划。原创 2023-08-21 09:51:19 · 86 阅读 · 0 评论 -
leetcode 833 字符串中的查找和替换
用startsWith可以判断是否有重复。原创 2023-08-15 14:36:01 · 85 阅读 · 0 评论 -
leetcode 1749 任意子数组和的绝对值的最大值
【代码】leetcode 1749 任意子数组和的绝对值的最大值。原创 2023-08-08 13:19:45 · 67 阅读 · 0 评论 -
leetcode 318 最长单词长度乘积
位运算存储包含的单词和判断是否有重复单词。原创 2023-08-06 17:28:15 · 77 阅读 · 0 评论 -
leetcode 309 最佳买卖股票时机(含冷冻期)
【代码】leetcode 309 最佳买卖股票时机(含冷冻期)原创 2023-07-27 10:44:42 · 69 阅读 · 0 评论 -
leetcode 316 去除重复字母
【代码】leetcode 316 去除重复字母。原创 2023-08-03 12:47:36 · 76 阅读 · 0 评论 -
leetcode 306 累加数
【代码】leetcode 306 累加数。原创 2023-07-24 16:27:59 · 83 阅读 · 0 评论 -
leetcode 133克隆图
【代码】leetcode 133克隆图。原创 2023-06-28 13:08:53 · 88 阅读 · 0 评论 -
leetcode 287 寻找重复数
【代码】leetcode 287 寻找重复数。原创 2023-07-17 11:24:53 · 114 阅读 · 0 评论 -
leetcode 23 合并k个生序链表
用分治算法,每次合并两个。原创 2023-07-08 10:30:19 · 80 阅读 · 0 评论 -
leetcode 完全平方数(动态规划)
【代码】leetcode 完全平方数(动态规划)原创 2023-07-15 10:44:28 · 88 阅读 · 0 评论 -
leetcode 134加油站
【代码】leetcode 134加油站。原创 2023-06-28 14:49:20 · 77 阅读 · 0 评论 -
leetcode 304 矩阵不可变
【代码】leetcode 304 矩阵不可变。原创 2023-07-22 18:55:48 · 293 阅读 · 0 评论 -
leetcode 143 重拍链表
首先找到中间节点,然后逆序中点后面的链表,然后合并。原创 2023-07-02 11:37:16 · 168 阅读 · 0 评论 -
leetcode 分割回文串
动态规划先判断出从i到j是回文的情况。将一个字符串分割成由回文串组成。在dfs判断出所有情况。原创 2023-06-27 11:37:43 · 169 阅读 · 0 评论 -
leetcode 63 不同路径2
用一维数组简化dp数组。原创 2023-06-24 10:39:27 · 338 阅读 · 0 评论 -
leetcode 57 插入区间
因为插入的区间可能在一开始的左边,一开始的右边,所以用一个isPlace判断是否使用过。如果插入的区间只能插入在一开始,先判断如果在左边,在判断是否用过(因为原来的数组是有序的)。如果没有用过,说明不能合并,则先插入新区间,在插入旧区间。当循环结束在判断是否用过,因为可能遍历完原区间都还没有用过新区间,如果没有则加入。原创 2023-06-20 23:09:51 · 87 阅读 · 0 评论 -
链表归并排序
【代码】链表归并排序。原创 2023-05-12 15:41:27 · 62 阅读 · 0 评论 -
二叉树寻找公共节点
【代码】二叉树寻找公共节点。原创 2023-06-02 09:52:15 · 141 阅读 · 0 评论 -
kmp查找对一个匹配的字符串的位置 (28)
【代码】kmp查找对一个匹配的字符串的位置 (28)原创 2023-06-07 13:02:27 · 60 阅读 · 0 评论 -
leetcode 分治法为运算表达式计算值
【代码】leetcode 分治法为运算表达式计算值。原创 2023-06-07 09:55:08 · 63 阅读 · 0 评论 -
leetcode31 下一个排序(获取比当前数字大的最小的数字)
假设一个数字是 1 3 6 5 2 , 可以看出从6开始下降,那么6就成了山峰,3是左边最大的,那么想找到最小的,就从6右边(包括6)找到最小的但是大于3的(5),交换3和5,就是 1 5 6 3 2,1 5 > 1 3,又想要最小,那就将5后面倒序,因为原先是升序的。原创 2023-06-10 23:40:15 · 249 阅读 · 0 评论