![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 59
Wednesday Adams
这个作者很懒,什么都没留下…
展开
-
Leetcode——House Rubber
【代码】Leetcode——House Rubber。原创 2023-05-08 14:28:18 · 533 阅读 · 1 评论 -
Warshall algorithm (transitive closure)
【代码】Warshall algorithm (transitive closure)原创 2023-05-05 23:59:38 · 675 阅读 · 0 评论 -
Horspool (String Matching)
【代码】Horspool (String Matching)原创 2023-05-05 13:47:40 · 457 阅读 · 0 评论 -
力扣——Check If Word Is Valid After Substitutions
【代码】力扣——Check If Word Is Valid After Substitutions。原创 2023-05-03 11:36:58 · 690 阅读 · 0 评论 -
算法题——求最长等差子序列的长度
给定一个非递减数组x,和一个等差数列的公差gap,求出最长等差子序列的长度。原创 2023-04-27 22:25:06 · 120 阅读 · 0 评论 -
求1~n之间的所有平方数O(sqrt(n))
之间,例如1~81之间的平方数有1,4,9,16,25,36,49,64,81;而它们的平方根分别为1,2,3,4,5,6,7,8,9都在1~之间找即可,因为1~n之间的平方数的平方根必定在1~要求1~n之间的所有平方数,只需在1~原创 2023-04-26 10:03:54 · 227 阅读 · 1 评论 -
线性规划的标准形
约束条件中必须为等式,且等式右边不能是负数。对于第二行来说,我们只需将左边加上一个变量。对于所有行来说来说,我们需要把任意变量。对于第一行来说,我们只需将。原创 2023-04-25 14:42:54 · 213 阅读 · 0 评论 -
求解第二大元素——锦标赛算法(Tournament Algorithm)
后留下一个数,那个数就是最大的数;那么怎么寻找第二大的数呢?我们发现,在淘汰的过程中,最大的数肯定和第二大的数见过面(也就是比较过)。因此,我们只需在淘汰的过程中为每一个数建立一个链表,把被淘汰的数放到留下的数的链表的表尾;当我们找到最大的数的时候,只需将最大的数的链表中最大的数取出来就得到了第二大的数了。每一轮都将两两比较中较大的留下来,较小的就直接丢弃;就知道不能先用一次循环找出最大元素,接着利用最大元素再一次循环找到第二大元素。的数组中的元素两两一组,一共分成。的算法求出数组中的第二大元素。原创 2023-03-23 20:29:01 · 1204 阅读 · 0 评论 -
证明:a^(log_b^n)=n^(log_b^a)
证明证明要证:就要证:就要证:而:因此得证。原创 2023-03-21 20:19:33 · 202 阅读 · 0 评论 -
力扣练习题目——Find Minimum in Rotated Sorted Array
【代码】力扣练习题目——Find Minimum in Rotated Sorted Array。原创 2023-03-08 11:57:27 · 68 阅读 · 0 评论 -
力扣练习题目——Koko Eating Bananas
【代码】力扣练习题目——Koko Eating Bananas。原创 2023-03-08 11:08:04 · 67 阅读 · 0 评论 -
力扣练习题目——Minimum Time to Complete Trips
【代码】力扣练习题目——Minimum Time to Complete Trips。原创 2023-03-08 10:12:36 · 78 阅读 · 0 评论 -
力扣练习题目——Jump Game VII
动态规划的思想,需要定义一个可行性数组bool f[n],f[i]代表是否可以到达i,判断是否可以到达只需判断f[i-maxJump]~f[i-minJump]之间是否有1即可,这时我们可以想到用累加求和数组sum[n]。原创 2023-03-05 16:42:54 · 111 阅读 · 0 评论 -
力扣练习题目——Jump Game VI
我们经过观察发现里面的那层 for(int j=max(0,i-k);j++) 循环可以不做,我们只需获取max_sum[i-k]~max_sum[i-1]之间的最大值即可,那不用循环怎么做呢。我们应该想到区间最大值问题应该用单调队列来解决。单纯的动态规划,其状态转移方程为:max_sum[i]=max(max_sum[i],max_sum[j]+nums[i]) j:min(0,i-k)~i-1。时间复杂度:O(nlogk)。时间复杂度:O(n^2)。原创 2023-03-05 14:03:43 · 63 阅读 · 0 评论 -
力扣练习题目——Jump Game V
即当我们需要计算 dp[i] 时,我们发现某个 dp[j] 没有计算过,接着在计算 dp[j] 时,又发现某个 dp[k] 没有计算过,以此类推,直到某次搜索时发现当前位置的 dp 值需要 dp[i] 的值才能得到,这样就出现了环。在本题中,根据第三个条件,arr[j] 是一定小于 arr[i] 的,即我们的搜索每深入一层,就跳到了高度更小的位置。记忆化搜索以深度优先搜索为基础,在第一次搜索到某个状态时,会将该状态与其对应的值存储下来,这样在未来的搜索中,如果搜索到相同的状态,就不用再进行重复搜索了。原创 2023-03-05 10:36:47 · 56 阅读 · 0 评论 -
力扣练习题目——Jump Game IV
下次看到一维数组的最少步数寻路问题基本都用BFS。原创 2023-03-04 19:42:28 · 71 阅读 · 0 评论 -
力扣练习题目——Jump Game II
【代码】力扣练习题目——Jump Game II。原创 2023-03-04 15:49:36 · 66 阅读 · 0 评论 -
力扣练习题目——Jump Game
【代码】力扣练习题目——Jump Game。原创 2023-03-04 14:49:15 · 76 阅读 · 0 评论 -
力扣练习题目——恰好移动 k 步到达某一位置的方法数目
给你两个 正 整数 startPos 和 endPos。最初,你站在 无限 数轴上位置 startPos 处。在一步移动中,你可以向左或者向右移动一个位置。给你一个正整数 k ,返回从 startPos 出发、恰好 移动 k 步并到达 endPos 的 不同 方法数目。由于答案可能会很大,返回对 109 + 7 取余 的结果。如果所执行移动的顺序不完全相同,则认为两种方法不同。注意:数轴包含负整数。输入:startPos = 1, endPos = 2, k = 3输出:3。原创 2023-03-04 11:41:43 · 94 阅读 · 0 评论