每一年都奔走在自己热爱里

没有人是一座孤岛,总有谁爱着你

随笔分类 -  算法

摘要:反转链表 反转链表总体有两种方法,迭代与递归,在迭代过程中需要注意细节,比如反转链表需要同时跟踪两个节点,递归需要注意临界条件与递归函数的意义。 本题中,迭代方法实时跟踪pre与cur节点,并实时更新,比较巧妙的是pre节点初始值的设置 而递归,需要理解递归函数的意义,也就是返回的是反转链表的头节点 阅读全文
posted @ 2022-07-24 10:19 雨下整夜~ 阅读(173) 评论(0) 推荐(0)
摘要:二分法边界思考(续) 本题思路是使相同长度下序列增长要尽可能慢 package leetCode.动态规划; /** * @author km * @date 2021年06月11日 **/ public class LongestIncreasingSubsequence { public sta 阅读全文
posted @ 2021-06-11 17:18 雨下整夜~ 阅读(82) 评论(0) 推荐(0)
摘要:关于二分法边界的一点思考 边界误用 对于二分搜索区间有两种形式,一种是左闭右开,一种是左闭右闭,区别在于初始右边界的赋值,如果是:right = arr.length 显然是左闭右开,而right=arr.length-1则为左闭右闭,两种区间选择不同导致后续缩小搜索区间也有不同的形式。 需要注意的 阅读全文
posted @ 2021-06-09 10:20 雨下整夜~ 阅读(130) 评论(0) 推荐(0)
摘要:单调栈 今天在干oj的时候借助到了单调栈,琢磨了一下它的特性和应用 本题需要找出**arr[i]左/右不小于arr[i]的边界,边界长度 * 高即为一个结果,取出最大值即可,而要获得左右不小于arr[i]**的边界,单调栈少不了。 什么是单调栈? 分两种一种单调递增栈,弹出的数据单调递增,一种单调递 阅读全文
posted @ 2021-03-13 20:31 雨下整夜~ 阅读(81) 评论(0) 推荐(0)
摘要:动态规划梳理笔记(一) 解决的问题 计数 有多少种方法走到右下角 有多少种从k个数中选出和为sum的选法 求取最大最小值 左上角至右下角路径的最大和 最长上升子序列的长度 求存在性 能不能选出k个数使得和是sum 确定状态 最后一步:最优策略中的最后一步决策 子问题:最优策略除去最后一步子问题与原问 阅读全文
posted @ 2021-03-13 15:48 雨下整夜~ 阅读(37) 评论(0) 推荐(0)
摘要:背包问题总结 01背包问题 01背包问题解决一个这样的问题,即在付出的代价有限,选取的物品也有限的条件(拿与不拿)下如何达到最优解的问题。 面临的棘手情况是,并不是代价可以承受的情况下总是选择拿取物品,所获得的价值会达到最大,可能出现由于首先拿取一个低价值的物品导致无法后续高价值的物品无法拿取错失最 阅读全文
posted @ 2021-03-13 11:28 雨下整夜~ 阅读(517) 评论(0) 推荐(0)