思路:
先排序,然后定义双指针 left,right,贪心遍历,左指针在中间,右指针在最右
如果两个数满足条件,则结果++,否则左指针前移动。
代码:
class Solution {
public int maxNumOfMarkedIndices(int[] nums) {
Arrays.sort(nums);
int len = nums.length;
int left = (len - 1) / 2, right = len - 1;
int res = 0;
while (left >= 0 && right > (len-1)/2) {
if (nums[left]*2 <= nums[right]) {
res++;
left--;
right--;
} else {
left--;
}
}
return res*2;
}
}