关注
弱鸡的二分查找算法,特别慢,我也不知道怎么过的。 import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int best = 0;
int cur = 0;
int n = sc.nextInt();
ArrayList<Integer> nums = new ArrayList<>();
for (int j = 0; j < n; j++) {
int target = sc.nextInt();
if (j != 0) {
int lower = lower_bound(nums, j, target);
int upper = upper_bound(nums, j, target);
cur += lower;
cur -= j - upper;
nums.add(upper, target);
} else {
nums.add(target);
}
if (cur > best) {
best = cur;
}
}
System.out.printf("%d %d\n", best, cur);
}
}
public static int lower_bound(List<Integer> nums, int size, int target) {
int low = 0, high = size;
while (low < high) {
int mid = (high - low) / 2 + low;
if (nums.get(mid) < target) low = mid + 1;
else high = mid;
}
return low;
}
public static int upper_bound(List<Integer> nums, int size, int target) {
int low = 0, high = size;
while (low < high) {
int mid = (high - low) / 2 + low;
if (nums.get(mid) <= target) low = mid + 1;
else high = mid;
}
return low;
}
}
查看原帖
点赞 2
相关推荐
牛客热帖
更多
正在热议
更多
# 交出你的校招焚诀 #
12524次浏览 206人参与
# 公司情报交流地 #
144838次浏览 1277人参与
# 神州信息求职进展汇总 #
3902次浏览 72人参与
# 三月的小目标 #
14618次浏览 277人参与
# 27届求职交流 #
4636次浏览 108人参与
# 面试___岗的必刷题单 #
14205次浏览 251人参与
# 26届求职交流 #
3897次浏览 80人参与
# 硬件人的简历怎么写 #
329981次浏览 3090人参与
# 教师节,你送祝福了吗 #
25000次浏览 101人参与
# 你的秋招第一面感觉怎么样 #
140701次浏览 806人参与
# 实习生至暗时刻 #
20705次浏览 408人参与
# 米哈游求职进展汇总 #
587177次浏览 3021人参与
# 哪些公司开暑期实习了? #
20478次浏览 166人参与
# 经纬恒润求职进展汇总 #
153350次浏览 1080人参与
# 你的秋招第一场笔试是哪家 #
294874次浏览 2085人参与
# AI面试问题分享 #
15217次浏览 307人参与
# 找AI工作应该卷什么? #
4948次浏览 89人参与
# 春招开局,你有保底offer吗? #
28477次浏览 226人参与
# 你经历过哪些AI幻觉? #
5586次浏览 130人参与
# 多益网络求职进展汇总 #
71115次浏览 307人参与
# 实习想申请秋招offer,能不能argue薪资 #
225340次浏览 1200人参与
查看7道真题和解析