LeetCode算法题解
文章平均质量分 93
akeyy
这个作者很懒,什么都没留下…
展开
-
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 · 966 阅读 · 0 评论 -
LeetCode 3130.找出所有稳定的二进制数组II
大,但是由于前一项取余之后可能很小,后一项取余之后也可能很大,因此相减可能出现负数,如果不处理可能导致最终的结果为负。在对结果进行取余的时候要注意防止出现负数,因此要先加上一个。的稳定的二进制数组的数目,定义。如果不那么做,那么在。的稳定二进制数组的数目。原创 2024-08-07 10:13:02 · 753 阅读 · 0 评论 -
leetcode 2959.关闭分部的可行集合数目
考虑暴力枚举每一种关闭分部的可能性,也就是枚举每一种分部开着的可能性。我们假设以二进制的1表示分部开着,0表示分部关闭。以一个十位的二进制数来表示这n个分部的开关情况。总的来说,我们先初始化已知边,由于两个点之间刚开始可能有多条边,因此我们只需要保存距离最小的边。必须要给两个方向的都赋值,因为本题是一个无向图。是否被选中,如果没有判断则可能会更新所选中分布之间的距离。最后我们需要看看被选中的分部之间的距离是不是都小于。而枚举每一种情况又需要进行一次Floyd算法,因此整体的时间复杂度是。原创 2024-07-20 11:26:24 · 631 阅读 · 0 评论 -
leetcode 3102.最小化曼哈顿距离
枚举去掉每一个点的情况,然后计算出点与点之间的距离,从中取最大值为去掉改点的最大距离,计算出每个点的情况之后再取出当中的最小值作为本题的答案。为了得到投影之后的x’和y’与原来的x和y之间的关系,我们可以用一个投影矩阵来对其进行变换。我们分别将原来x轴的差和y轴的差投影到现在的x’轴上。由于投影之后线段的长度会缩小。这个点之后的最长曼哈顿距离,再求最小即可得到答案。如图所示,假设我们有两个点,分别是。倍,而我们上面的操作又先扩大。倍,之后再将其逆时针旋转。根据切比雪夫距离的定义,我们可以构建两个有序列表。原创 2024-07-10 10:38:05 · 728 阅读 · 0 评论