
算法
文章平均质量分 81
RT,就是一些算法题
ljdxgb
这个作者很懒,什么都没留下…
展开
-
双指针问题
有序矩阵中第K小的元素给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。可以利用类双指针的方法来对本题进行解答,传统的双指针方法如下:符合条件1,左边指针动一下,符合条件2,右边指针动一下,直到两个指针相遇,满足条件这种方法也叫尺取法,可原创 2021-01-11 16:18:18 · 241 阅读 · 0 评论 -
刷题中遇到的记忆化方法
刷题中遇到的记忆化方法记忆化搜索需要解决的一个重要问题就是如何对状态进行编辑我能赢吗在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到或超过 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家不能重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定一个整数 maxChoosableInteger (整数池中可选择的最大数)和另一个整数 des原创 2021-01-01 11:27:54 · 211 阅读 · 0 评论 -
刷题中遇到的贪心算法
去除重复字母给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)输入:s = "bcabc"输出:"abc"贪心加单调栈题目要求字典排序, 则结果中第一个字母的字典序靠前的优先级最高—贪心因为不能打乱相对位置—即输入中排在输出第一个字母位置前的字母都不能出现,所以要在保证每个字母至少出现一次的前提下再考虑字典序排列根据第1点可以考虑使用单调栈来保证字典序排列,根据第2点我们给元素出栈时加上限制条件,只有在栈原创 2021-01-01 11:29:36 · 399 阅读 · 0 评论 -
穷举、DFS、记忆化搜索、动态规划之间的关系以“分汤”为例
808. 分汤有 A 和 B 两种类型的汤。一开始每种类型的汤有 N 毫升。有四种分配操作:提供 100ml 的汤A 和 0ml 的汤B。提供 75ml 的汤A 和 25ml 的汤B。提供 50ml 的汤A 和 50ml 的汤B。提供 25ml 的汤A 和 75ml 的汤B。当我们把汤分配给某人之后,汤就没有了。每个回合,我们将从四种概率同为0.25的操作中进行分配选择。如果汤的剩余量不足以完成某次操作,我们将尽可能分配。当两种类型的汤都分配完时,停止操作。注意不存在先分配100 ml汤B的操原创 2021-03-09 13:55:30 · 314 阅读 · 0 评论