摘要: 动态规划算法描述 动态规划(dynamic programming)是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。 dp[i]表示子问题的解 初始状态 状态转移方程 通过只保留必要的状态来节省空间,这种方法叫做滚动变量,或者滚动 阅读全文
posted @ 2025-12-15 22:50 coder江 阅读(0) 评论(0) 推荐(0)
摘要: 148. 排序链表 两个思路,一种是从顶向下的排序,另外的一种是从低向上的归并排序,归并排序的复杂度是NLogN class Solution { public ListNode sortList(ListNode head) { if (head == null || head.next == n 阅读全文
posted @ 2025-12-14 20:06 coder江 阅读(3) 评论(0) 推荐(0)
摘要: 530. 二叉搜索树的最小绝对差 二叉搜索树的特点,左边<根<右,有一个特点,就是中序遍历是有序的(二叉搜索树的中序遍历序列是升序的),这里如何记忆前,中和后序,就理解根在三个中的那个位置,前序就是收尾 我们在二叉搜索树中获取有序数据仅需 O(n)时间,无须进行额外的排序操作,非常高效。 /* 前序 阅读全文
posted @ 2025-11-24 21:04 coder江 阅读(14) 评论(0) 推荐(0)
摘要: 推荐使用闭区间的方式去做二分查找的题目 如果数量比较少,那么建议使用顺序遍历的方式 因此二分结束时一定有: i指向首个大于 target 的元素,j指向首个小于 target 的元素。易得当数组不包含 target 时,插入索引为 162. 寻找峰值 寻找最大值,这个也可以理解,嗯 大的一侧为什么一 阅读全文
posted @ 2025-11-23 21:57 coder江 阅读(131) 评论(0) 推荐(0)
摘要: 138. 随机链表的复制 拷贝问题,此类问题图拷贝问题(133题) 解题思路 遍历两次 第一次遍历,拷贝next,并且拷贝old和new到一个map中,映射关系 第二次遍历,拷贝random,通过oldRandom找到newrandom,然后设置到new中 92. 反转链表 II 思路通链表的操作问 阅读全文
posted @ 2025-11-13 21:12 coder江 阅读(10) 评论(0) 推荐(0)