二分

August 1, 2021

1337. 矩阵中战斗力最弱的 K 行

1337. 矩阵中战斗力最弱的 K 行 思路: 此题有两种方法:朴素和 二分+优先队列 朴素的很简单,用一个二元数组记录每一行战力和index 然后 自定义一个Arrays.sort()按照值优先其次是index来排序 由于军人在前面,所以可以用二分来查找右边的最后一个军人的下标,由于存在没有军人的情况,所以需要额外判断下下标在哪里。之后用大根堆来存储二元数组,并且更新当前的最大值。最后堆顶弹出并从右往左放入数组即可:...

Read More
July 16, 2021

二分模板

「二分」模板其实有两套,主要是根据 check(mid) 函数为 true 时,需要调整的是 l 指针还是 r 指针来判断。 当 check(mid) == true 调整的是 l 时:计算 mid 的方式应该为 mid = l + r + 1 >>...

Read More
July 16, 2021

33. 搜索旋转排序数组

33. 搜索旋转排序数组 「二分」的本质是两段性,并非单调性。只要一段满足某个性质,另外一段不满足某个性质,就可以用「二分」。 class Solution { public int search(int[] nums, int...

Read More