二分
int[] arr = new int[N];
int cnt = 0;
void run() {
Arrays.sort(arr, 0, n);
if (arr[n - 1] < target) cnt = n;
else if (arr[0] >= target) cnt = 0;
else {
int l = 0, r = arr.length - 1;
while (l < r) {
int mid = (l + r) / 2;
if (arr[mid] <= target) {
l = mid + 1;
} else {
r = mid;
}
}
cnt = l;
}
}
flag + 前缀和
int[] flag = new int[N];
int[] s = new int[N];
int[] arr = new int[N];
int cnt = 0;
void run() {
for (int i = 0; i < n; i++) {
flag[arr[i]]++;
}
s[0] = flag[0];
for (int i = 1; i < n; i++) {
s[i] = s[i - 1] + flag[i];
}
cnt = target - 1 == 0 ? 0 : flag[target - 1];
}