![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 82
ほしのした
这个作者很懒,什么都没留下…
展开
-
算法刷题记录-树(LeetCode)
在遍历时带有层数信息以及路径信息即可,通过DFS遍历获取最深层的节点以及其路径,然后通过从头到尾遍历确认那一层是最后的公共节点。每次遍历时,带着先前节点的最大值。若当前节点值大于等于先前的最大值,则结果+1,并更新最大值。递归遍历其左右子节点。首先,需要通过dfs算法找到从原点到目标点的路径。对于从原点到目标节点的路径。考虑中序遍历的性质即可。原创 2023-09-07 17:20:23 · 444 阅读 · 0 评论 -
算法刷题记录-其他类型(LeetCode)
我们反过来想,没重叠,就要满足:绿区间的左端,落在蓝区间的屁股的后面,反之就有重叠:绿区间的左端原创 2023-09-01 21:07:30 · 106 阅读 · 0 评论 -
算法刷题记录-DP(LeetCode)
cache[i][0]表示第i个字符是0的变换次数,cache[i][1]表示第i个字符是1的变换次数。根据题意可知,字符有0和1两种状态,所以我们维护一个二维的cache数组来记录每个字符的状况。,则 Alice 赢得游戏,返回true,否则 Bob 赢得游戏,返回 false。,说明此时至少凑成了长度为 333 的斐波那契数列,同时结合状态定义,可以使用。同时又由于所有石子总和为奇数,堆数为偶数,即没有平局,所以先手必胜。具体的,对于本题,由于石子堆数为偶数,因此先手的最开始局面必然是。原创 2023-09-01 21:08:10 · 292 阅读 · 0 评论 -
算法刷题记录-Hash(LeetCode)
范围内2的幂的字符串表示的长度存入HashMap中,并将其具体值存入HashSet中。将新输入的数字转化为字符串,首先判断hashmap中是否存在长度为k的2的幂,若无则一定不可以重组为2的幂。若存在,则对长度等于字符串的2的幂的每个字符串逐个比较字符数量,若一致则存在返回ture。Hashset有个特点remove的元素不在set里面的话,是删除不了什么东西的。例如题目中的样例,time me bell,删除ime 的话是什么都不会发生的。,用于保存当前时间t的票型,定义。用于存储在不同时间下的领先者。原创 2023-09-01 21:07:51 · 103 阅读 · 0 评论 -
算法刷题记录(LeetCode 451-480)
枚举到 1:满足 nums[i] < k,说明对于 i 而言,后面有一个比其大的元素(满足 i < k 的条件),同时这个 k 的来源又是因为维护「单调递减」而弹出导致被更新的(满足 i 和 k 之间,有比 k 要大的元素)。枚举 k:由于 k 是 132 结构中的中间值,这里的分析逻辑和「枚举 i」类似,因为遍历是单向的,我们需要找到 k 左边的 i,同时确保 [i,k] 之间存在比 i 和 k 大的数字。由于我们的比较逻辑只针对 i 和 k,而 i 是从后往前的处理的,必然会被遍历到;原创 2023-08-19 09:33:45 · 51 阅读 · 0 评论 -
算法刷题记录(LeetCode 661-690)
【代码】算法刷题记录(LeetCode 661-690)原创 2023-07-24 15:21:46 · 64 阅读 · 0 评论 -
算法刷题记录(LeetCode 631-660)
【代码】算法刷题记录(LeetCode 631-660)原创 2023-07-15 17:36:38 · 77 阅读 · 0 评论 -
算法刷题记录(LeetCode 571-600)
为什么用ArrayList?因为不需要重写hash 和 equals方法。要记录当前最大的出栈数以及最左的发生出栈的位置。原创 2023-07-15 17:34:53 · 115 阅读 · 0 评论 -
算法刷题记录(LeetCode 541-570)
【代码】算法刷题记录(LeetCode 541-570)原创 2023-07-04 18:22:56 · 49 阅读 · 0 评论 -
算法刷题记录(LeetCode 390-420)
CSAPP第一章有介绍2’s Comp. -> Unsigned,也就是用Unsigned的大正数表示Signed负数。举个例子,8位int中-1表示为0b11111111(T),无符号整数0b11111111(U)表示为。先转换成大正数,以无符号整形表示。该无符号整形与原始有符号负数的2进制标是是一样的。即可转化为一个大正数,二者的二进制表示相同。在这里32位整形则将原始负数num加上。,二者在计算机中二进制表示相同,差值为。因此先在负数的基础上加上。确定每一个都是战舰的头部。原创 2023-06-09 14:30:11 · 64 阅读 · 0 评论 -
算法刷题记录(LeetCode 361-390)
对于概率算法,代码往往都是很浅显的,但是这种问题的关键在于证明,你的算法为什么是对的?为什么每次以 1/i 的概率更新结果就可以保证结果是平均随机的?先说结论,当你遇到第 i 个元素时,应该有 1/i 的概率选择该元素,1 - 1/i 的概率保持原有的选择。原创 2023-06-09 14:29:13 · 58 阅读 · 0 评论 -
算法刷题记录(LeetCode 331-360)
简单来说,就是在遍历每个数 nums[i] 的同时,维护一个具有单调性的 f[] 数组,其中 f[len]=x 代表长度为 len 的最长上升子序列最小结尾元素为 x,可以证明 f 数组具有单调性(看 前置🧀),因此每次可以通过二分找到小于 nums[i] 的最大下标,来作为 nums[i] 的前一个数。作为一个数组,在这个数组上计算 LIS 的长度就是答案。因为两个宽度相同的信封不能相互包含的,这个子序列就是最优的嵌套方案。这个解法的关键在于,对于宽度。相同的情况,则按照高度。相同的数对,要对其高度。原创 2023-06-08 11:12:17 · 36 阅读 · 0 评论 -
算法刷题记录(LeetCode 1-30)
算法刷题记录,自用原创 2023-03-14 19:38:16 · 171 阅读 · 0 评论