LC 2576. 求出最多标记下标
https://leetcode.cn/problems/find-the-maximum-number-of-marked-indices/
二分还是要想清楚思路,思路对了才行。这题我最开始想到了二分,但是不知道怎么进行验证。
如果是k的话,那么选择最小k元素,和最大k元素,然后确认两两之间是否满足条件就行。
class Solution: def maxNumOfMarkedIndices(self, nums: List[int]) -> int: nums.sort() def test(k): a = nums[:k] b = nums[-k:] for x, y in zip(a, b): if 2 * x > y: return False return True s, e = 1, len(nums) // 2 while s <= e: m = (s + e) // 2 if test(m): s = m + 1 else: e = m - 1 return 2 * e