全部评论
弱鸡的二分查找算法,特别慢,我也不知道怎么过的。 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;
}
}
c,80,java,20,心塞
棒棒哒
大佬们投的什么岗位啊
为什么多了还要-1 少了还+1🤣
题面确实有问题。。
勉强过了,哈哈 二分查找
第一题为什么80
输出应该怎么输出
题目是有问题,描述的出错。
线段树?leetcode有类似的题好像。记不清了
0.2.....怎么才能不超时
是不是应该输出1,1 1,0 好奇怪
我才0.2
我是超时,怎么才能不超时啊。。。
只能过0.8,算法还是太菜
相关推荐
点赞 评论 收藏
分享
05-21 16:37
成都信息工程大学 深度学习 点赞 评论 收藏
分享
点赞 评论 收藏
分享