Phó GOAT
Senior Member
Java:
class Solution {
public long countFairPairs(int[] nums, int lower, int upper) {
long ans = 0;
Arrays.sort(nums);
for (int i = 0; i < nums.length; i++) {
int l = binSearch(nums, i + 1, nums.length - 1, lower - nums[i]);
int u = binSearch(nums, i + 1, nums.length - 1, upper - nums[i] + 1);
ans += (u - l);
}
return ans;
}
private int binSearch(int[] nums, int l, int r, int target) {
while (l <= r) {
int m = l + ((r - l) >> 1);
if (nums[m] >= target) r = m - 1;
else l = m + 1;
}
return l;
}
}




