- 博客(36)
- 收藏
- 关注
原创 算法训练DAY45LeetCode● 322. 零钱兑换 ● 279.完全平方数
【代码】算法训练DAY45LeetCode● 322. 零钱兑换 ● 279.完全平方数。
2023-08-13 12:15:44
129
原创 算法训练DAY44LeetCode● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
【代码】算法训练DAY44LeetCode● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ。
2023-08-13 12:13:09
165
原创 算法训练DAY43LeetCode1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
1049. 最后一块石头的重量 II。
2023-08-13 12:10:17
129
原创 算法训练DAY38LeetCode509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
746. 使用最小花费爬楼梯。509. 斐波那契数。
2023-08-05 22:40:39
121
原创 算法训练DAY37LeetCode738.单调递增的数字 968.监控二叉树
思路:从低到上,先给叶子节点父节点放个摄像头,然后隔两个节点放一个摄像头,直至到二叉树头结点。738.单调递增的数字。738.单调递增的数字。
2023-08-05 22:36:14
92
原创 算法训练DAY36LeetCode 435. 无重叠区间 763.划分字母区间 56. 合并区间
在遍历的过程中相当于是要找每一个字母的边界,如果找到之前遍历过的所有字母的最远边界,说明这个边界就是分割点了。此时前面出现过所有字母,最远也就到这个边界了。2. 从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点。1. 统计每一个字符最后出现的位置。
2023-08-02 21:09:40
64
原创 算法训练DAY35LeetCode860.柠檬水找零406.根据身高重建队列 452. 用最少数量的箭引爆气球
【代码】算法训练DAY35LeetCode860.柠檬水找零406.根据身高重建队列 452. 用最少数量的箭引爆气球。
2023-08-02 21:04:52
55
原创 算法训练DAY34LeetCode1005.K次取反后最大化的数组和 134. 加油站135. 分发糖果
【代码】算法训练DAY34LeetCode1005.K次取反后最大化的数组和 134. 加油站135. 分发糖果。
2023-08-02 21:00:01
40
原创 算法训练DAY32LeetCode 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点。每次移动取最大跳跃步数(得到最大的覆盖范围),每移动一个单位,就更新最大覆盖范围。
2023-07-29 21:38:30
91
原创 算法训练DAY31LeetCode455.分发饼干 376. 摆动序列53. 最大子序和
【代码】算法训练DAY31LeetCode455.分发饼干 376. 摆动序列53. 最大子序和。
2023-07-29 00:00:34
82
原创 算法训练DAY30LeetCode332.重新安排行程51. N皇后37. 解数独
【代码】算法训练DAY30LeetCode332.重新安排行程51. N皇后37. 解数独。
2023-07-28 23:55:38
45
原创 算法训练DAY18LeetCode513.找树左下角的值 112. 路径总和106.从中序与后序遍历序列构造二叉树
【代码】算法训练DAY18LeetCode513.找树左下角的值 112. 路径总和106.从中序与后序遍历序列构造二叉树。
2023-07-23 18:25:11
58
原创 算法训练DAY17LeetCode110.平衡二叉树257. 二叉树的所有路径 404.左叶子之和
【代码】算法训练DAY16LeetCode110.平衡二叉树257. 二叉树的所有路径 404.左叶子之和。
2023-07-14 20:44:44
136
1
原创 算法训练DAY16LeetCode104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数
【代码】算法训练DAY16LeetCode104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数。
2023-07-13 16:41:04
46
1
原创 算法训练DAY15LeetCode102.二叉树的层序遍历 226.翻转二叉树
【代码】算法训练DAY15LeetCode102.二叉树的层序遍历 226.翻转二叉树。
2023-07-12 22:48:28
34
1
原创 算法训练DAY13LeetCode239. 滑动窗口最大值347.前 K 个高频元素
思路:这道题使用优先级队列是最好的方法。先使用unordered_map统计元素次数,再使用最大堆(优先级队列)对元素频率进行排序,弹出前K个元素就是要返回的答案。思路:这是使用单调队列的经典题目。
2023-07-12 00:49:21
82
1
原创 算法训练DAY09
思路:KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。KMP算法最主要的就是next数组。next数组就是一个前缀表(prefix table)。前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。思路:对于一个字符串s,如果s可由其字串重复多次构成,那么新字符串s+s(去除首尾字符)一定会包含s字符串,利用这一点来解决问题。28. 实现 strStr()459.重复的子字符串。
2023-07-09 00:30:39
50
1
原创 算法训练DAY06
这样就将字符串s中字符出现的次数,统计出来了。思路:这道题要求求出两个数组的交集,很明显使用哈希表是比较方面,考虑到题目还要求输出结果的每个元素是唯一的,我们使用unordered_set,unordered_set的底层也是用哈希表来实现的,unordered_set对其内部元素不做排序但保证元素唯一。解题过程中,先用num_set存储nums1数组的元素,再遍历nums2数组的元素m,查找num_set中是否存在元素m,若存在则将该元素插入result_set里,遍历结束最终返回result_set。
2023-07-03 17:44:56
75
1
原创 算法训练DAY02-LeetCode977.有序数组的平方 ;209.长度最小的子数组 ;59.螺旋矩阵II
比较好的方法是使用滑动窗口法,同样类似双指针法,left指针指向窗口起始位置,right指针指向窗口结束位置,用一个for循环,窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。思路 :题目所给的是一个非递减顺序的数组,要最终返回由每个元素的平方所组成的数组,那么很显然最终数组的最大值位于原数组的最左端或最右段,最小值应该在原数组中间的位置;由外向内一圈一圈这么画下去。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。
2023-06-29 23:08:42
72
1
原创 数学建模之层次分析法
层次分析(analysis hierarchy process,简记为AHP)是一种定性和定量相结合的、系统化的、层次化的分析方法,它是将半定性、半定量问题转化为定量问题的一种行之有效的方法,使得人的思维层次化。而层次分析法是数学建模之中最常用的一种模型,属于评价类模型,例如选择优秀员工,选择最佳旅游方案等等。1.评价的准则不易过多,过多会导致误差加大,并且平均随机一致性指标的表中最多只到15。如果CR......
2022-08-02 22:00:11
3791
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人