
算法题
文章平均质量分 74
muyierfly
这个作者很懒,什么都没留下…
展开
-
30.递归、搜索、回溯之穷举VS暴搜VS回溯VS剪枝
回溯算法是⼀种经典的递归算法,通常⽤于解决组合问题、排列问题和搜索问题等。回溯算法的基本思想:从⼀个初始状态开始,按照⼀定的规则向前搜索,当搜索到某个状态⽆法前进时,回退到前⼀个状态,再按照其他的规则搜索。回溯算法在搜索过程中维护⼀个状态树,通过遍历状态树来实现对所有可能解的搜索。回溯算法的核心思想:“试错”,即在搜索过程中不断地做出选择,如果选择正确,则继续向前搜索;否则,回退到上⼀个状态,重新做出选择。回溯算法通常⽤于解决具有多个解,且每个解都需要搜索才能找到的问题。总结。原创 2024-09-17 16:24:44 · 327 阅读 · 0 评论 -
36.贪心算法3
当我们把整个信封按照「下⾯的规则」排序之后: i. 左端点不同的时候:按照「左端点从⼩到⼤」排序;ii. 左端点相同的时候:按照「右端点从⼤到⼩」排序 我们发现,问题就变成了仅考虑信封的「右端点」,完完全全的变成的「最⻓上升⼦序列」的模 型。那么我们就可以⽤「贪⼼ + ⼆分」优化我们的算法。原创 2024-09-17 16:24:21 · 798 阅读 · 0 评论 -
35.贪心算法2
【代码】35.贪心算法2。原创 2024-09-17 16:23:40 · 797 阅读 · 0 评论 -
34.贪心算法1
【代码】34.贪心算法1。原创 2024-09-17 16:23:22 · 1652 阅读 · 0 评论 -
33.递归、搜索、回溯之记忆化搜索
斐波那契数(easy)原创 2024-09-17 16:22:37 · 412 阅读 · 0 评论 -
32.递归、搜索、回溯之floodfill算法
图像渲染。原创 2024-09-17 16:22:18 · 502 阅读 · 0 评论 -
31.递归、搜索、回溯之综合练习
找出所有子集的异或总和再求和(easy)原创 2024-09-17 16:22:02 · 393 阅读 · 0 评论 -
29.递归、搜索、回溯之二叉树的深度3
计算布尔二叉树的值(medium)原创 2024-09-17 16:21:24 · 381 阅读 · 0 评论 -
28.递归、搜索、回溯之递归2
只有一个分支改成循环很容易。原创 2024-09-17 16:21:01 · 392 阅读 · 0 评论 -
27.递归、搜索、回溯之名词解释1
函数自己调用自己的情况。原创 2024-09-17 16:20:35 · 352 阅读 · 0 评论 -
26.动态规划之二维费用的背包问题&似包非包&卡特兰数
数据量太大记得mod。原创 2024-09-17 16:20:14 · 426 阅读 · 0 评论 -
DAY28-力扣刷题
实现一个二叉搜索树迭代器类roottruefalseint next()注意,指针初始化为一个不存在于 BST 中的数字,所以对next()的首次调用将返回 BST 中的最小元素。你可以假设next()调用总是有效的,也就是说,当调用next()时,BST 的中序遍历中至少存在一个下一个数字。原创 2024-07-24 10:22:46 · 457 阅读 · 0 评论 -
25.动态规划之完全背包
【代码】25.动态规划之完全背包。原创 2024-07-24 10:21:12 · 476 阅读 · 0 评论 -
24(2).动态规划之背包问题(重点)
背包问题 (Knapsack problem) 是⼀种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。•多重背包问题:每件物品最多有 si 个•混合背包问题:每个物品会有上⾯三种情况......•分组背包问题:物品有 n 组,每组物品⾥有若⼲个,每组⾥最多选⼀个物品其中上述分类⾥⾯,根据背包是否装满,又分为两类:•不一定装满背包•背包一定装满优化方案:•空间优化 - 滚动数组•。原创 2024-07-22 10:50:39 · 600 阅读 · 0 评论 -
24(1).动态规划之两个数组的dp问题
最长公共子序列。原创 2024-07-22 10:50:04 · 298 阅读 · 0 评论 -
DAY27-力扣刷题
给你一个下标从开始的整数数组numbers,该数组已按,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是和,则。以长度为 2 的整数数组的形式返回这两个整数的下标index1和index2。你可以假设每个输入,而且你重复使用相同的元素。你所设计的解决方案必须只使用常量级的额外空间。原创 2024-07-21 10:10:14 · 337 阅读 · 0 评论 -
23.动态规划之回文串问题5
让字符串成为回文串的最小插入次数。回文串分割IV(hard)用动态规划的思想进行预处理。分割回文串II(hard)原创 2024-07-21 10:06:31 · 469 阅读 · 0 评论 -
22.动态规划之子序列问题5
最长的斐波那契子序列的长度(重点)等差数列划分II - 子序列。其实最优解是贪心思路。原创 2024-07-20 10:13:11 · 283 阅读 · 0 评论 -
DAY26-力扣刷题
依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为。您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回。原创 2024-07-20 10:12:45 · 410 阅读 · 1 评论 -
DAY25-力扣刷题
请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个。原创 2024-07-19 21:11:52 · 279 阅读 · 0 评论 -
21.动态规划之子数组序列4
此时画叉的情形不用考虑。原创 2024-07-19 21:11:16 · 298 阅读 · 0 评论 -
DAY24-力扣刷题
【代码】DAY24-力扣刷题。原创 2024-07-18 10:25:58 · 272 阅读 · 0 评论 -
20.动态规划之简单多状态dp问题3
其实不用考虑“买入状态”,因为有股票卖不出去肯定不是最大值。其实结果是g(n-1)呢内的。原创 2024-07-18 10:25:20 · 483 阅读 · 0 评论 -
19.动态规划之路径问题2
根据「状态转移⽅程」的推导来看,填表的顺序就是「从上往下」填每⼀⾏,在填写每⼀⾏的时候 「从左往右」。可以在最前⾯加上⼀个「辅助结点」,帮助我们初始化。在本题中,「添加⼀⾏」,并且「添加⼀列」后,只需将。辅助结点⾥⾯的值要「保证后续填表是正确的」;主要关注的是机器人刚开始站的位置。根据「状态表⽰」,我们要返回。的位置)向下⾛⼀步,转移到。的位置)向右⾛⼀步,转移到。位置处,⼀共有多少种⽅式。位置的⽅法数,那么到达。位置出发,巴拉巴拉;从起始位置出发,到达。「下标的映射关系」。原创 2024-07-17 09:55:45 · 629 阅读 · 0 评论 -
DAY23-力扣刷题
给你一个整数数组nums,除某个元素仅出现外,其余每个元素都恰出现请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。原创 2024-07-17 09:54:42 · 390 阅读 · 0 评论 -
DAY22-力扣刷题
除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回。你从其中的一个加油站出发,开始时油箱为空。图中一个节点的引用,请你返回该图的。你有一辆油箱容量无限的的汽车,从第。分割成一些子串,使每个子串都是。所有可能的分割方案。个加油站需要消耗汽油。原创 2024-07-08 09:58:29 · 437 阅读 · 0 评论 -
18.动态规划之斐波那契数列模型1
对于这类需要取模的问题,我们每计算⼀次(两个数相加/乘等),都需要取⼀次模。需要注意的是,这道题⽬说,由于结果可能很⼤,需要对结果取模。在计算的时候,三个值全部加起来再取模,即。是不可取的,同学们可以试验⼀下,取题⽬范围内最⼤值时,⽹站会报错。的时候是没有办法进⾏推导的,因。发⽣了溢出,我们的答案就错了。从我们的递推公式可以看出,因此我们需要在填表之前,将。位置时,⼀共有多少种⽅法。从我们的递推公式可以看出,因此我们需要在填表之前,将。毫⽆疑问是「从左往右」。毫⽆疑问是「从左往右」。原创 2024-07-08 09:56:40 · 993 阅读 · 0 评论 -
DAY21-力扣刷题
深度优先搜索是很直观的做法。从根节点开始,遍历每个节点,如果遇到叶子节点,则将叶子节点对应的数字加到数字之和。如果当前节点不是叶子节点,则计算其子节点对应的数字,然后对子节点递归遍历。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。在每一天,你可以决定是否购买和/或出售股票。你也可以先购买,然后在。请你设计并实现时间复杂度为。给定一个未排序的整数数组。原创 2024-07-07 09:37:07 · 367 阅读 · 0 评论 -
17.优化算法之解决拓扑排序4
【代码】17.优化算法之解决拓扑排序4。原创 2024-07-07 09:36:36 · 302 阅读 · 0 评论 -
DAY20-力扣刷题
也就是说,如果正位于当前行的下标。每一步只能移动到下一行中相邻的结点上。,那么下一步可以移动到下一行的下标。,找出自顶向下的最小路径和。原创 2024-07-06 09:32:04 · 528 阅读 · 0 评论 -
16.优化算法之BFS多源3
然后再遍历⼀遍矩阵,看看哪些位置的。相连的联通区域全部标记⼀下;标记的时候,可以⽤「多源。原创 2024-07-06 09:31:33 · 496 阅读 · 0 评论 -
DAY19-力扣刷题
给定一个二叉树,判断它是否是 平衡二叉树。原创 2024-07-05 09:45:03 · 350 阅读 · 0 评论 -
15.优化算法之BFS最短路问题2
迷宫中离⼊⼝最近的出⼝。原创 2024-07-05 09:43:59 · 376 阅读 · 0 评论 -
DAY18-力扣刷题
(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)是同一棵树的后序遍历,请你构造并返回这颗。排列,请你将其转换为一棵平 二叉搜索树。,请构造二叉树并返回其根节点。是二叉树的中序遍历,原创 2024-07-04 10:03:01 · 403 阅读 · 0 评论 -
14.优化算法之BFS解决FloodFill算法1
dfs:深度优先遍历(红色)bfs:宽度优先遍历。原创 2024-07-04 10:02:35 · 462 阅读 · 0 评论 -
13.优化算法之优先级队列(堆)
最后⼀块⽯头的重量。原创 2024-07-03 09:58:15 · 875 阅读 · 0 评论 -
12.优化算法之队列+宽搜(BFS)
⼆叉树的锯⻮形层序遍历。原创 2024-07-03 09:57:55 · 556 阅读 · 0 评论 -
11.优化算法之栈
可以用数组模拟栈结构。原创 2024-07-02 09:27:23 · 440 阅读 · 0 评论 -
10.优化算法之字符串
【代码】10.优化算法之字符串。原创 2024-07-02 09:27:07 · 392 阅读 · 0 评论 -
9.优化算法之哈希表
1. 两数之和 - 力扣(LeetCode)原创 2024-07-01 09:39:09 · 896 阅读 · 0 评论