LeetCode算法题解
文章平均质量分 87
akeyy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode732.我的日程安排表III
首先构造一个全为0的数组,每次添加新日程的时候只需要将startTime加1和endTime减1就表示从startTime到endTime这段时间段都加上了1。一种直接的思路是建立一个空的线段,在每次添加新日程的时候[startTime, endTime)在经过的路径上加1。利用有序字典的方式,每次添加一个新日程就将startTime加上1以及endTime减去1。注意,以上的时间复杂度都是单次预定的时间复杂度,如果要计算总的时间复杂度则还需乘以k。,而且需要遍历n个数的最大值,总的时间复杂度就是。原创 2025-01-04 11:01:10 · 1012 阅读 · 0 评论 -
Leetcode. 688骑士在棋盘上的概率
步之后骑士还在棋盘上的概率。原创 2024-12-07 14:44:21 · 959 阅读 · 0 评论 -
LeetCode. 516最长回文子序列
将dfs(i,j)定义为从iii到jjj的最长回文子序列的长度。原创 2024-11-11 16:47:14 · 866 阅读 · 0 评论 -
LeetCode 3007.价值和小于等于K的最大数字
我们可以发现,当最高位为1也就是6这个数的最高位时,后面两位最高只能到10也就是6的后两位,也就是2,这时一共有2+1=3种可能。而当前面两位为11时,最后一位最多也只能跟6的最后一位相同,也就是0。除开这两种跟6相同的情况,其他情况例如前面两位为10时,最后一位可以是1或0;当最高位为0时,后面两位可以是00,01,10,11四种情况。可以看出有2个01,2个10,以及2个00和1个11。位及之前的数构成的二进制数比相同位置的。的奇数个数,再将这些个数乘以。后面能填的数的个数加上。考虑用一个函数来计算。原创 2024-08-21 12:04:59 · 1101 阅读 · 0 评论 -
LeetCode 3130.找出所有稳定的二进制数组II
大,但是由于前一项取余之后可能很小,后一项取余之后也可能很大,因此相减可能出现负数,如果不处理可能导致最终的结果为负。在对结果进行取余的时候要注意防止出现负数,因此要先加上一个。的稳定的二进制数组的数目,定义。如果不那么做,那么在。的稳定二进制数组的数目。原创 2024-08-07 10:13:02 · 830 阅读 · 0 评论 -
leetcode 2959.关闭分部的可行集合数目
考虑暴力枚举每一种关闭分部的可能性,也就是枚举每一种分部开着的可能性。我们假设以二进制的1表示分部开着,0表示分部关闭。以一个十位的二进制数来表示这n个分部的开关情况。总的来说,我们先初始化已知边,由于两个点之间刚开始可能有多条边,因此我们只需要保存距离最小的边。必须要给两个方向的都赋值,因为本题是一个无向图。是否被选中,如果没有判断则可能会更新所选中分布之间的距离。最后我们需要看看被选中的分部之间的距离是不是都小于。而枚举每一种情况又需要进行一次Floyd算法,因此整体的时间复杂度是。原创 2024-07-20 11:26:24 · 682 阅读 · 0 评论 -
leetcode 3102.最小化曼哈顿距离
枚举去掉每一个点的情况,然后计算出点与点之间的距离,从中取最大值为去掉改点的最大距离,计算出每个点的情况之后再取出当中的最小值作为本题的答案。为了得到投影之后的x’和y’与原来的x和y之间的关系,我们可以用一个投影矩阵来对其进行变换。我们分别将原来x轴的差和y轴的差投影到现在的x’轴上。由于投影之后线段的长度会缩小。这个点之后的最长曼哈顿距离,再求最小即可得到答案。如图所示,假设我们有两个点,分别是。倍,而我们上面的操作又先扩大。倍,之后再将其逆时针旋转。根据切比雪夫距离的定义,我们可以构建两个有序列表。原创 2024-07-10 10:38:05 · 894 阅读 · 0 评论
分享