牛客1220952号 level
获赞
6
粉丝
1
关注
23
看过 TA
2
2020
算法工程师
IP属地:上海
暂未填写个人简介
私信
关注
2019-09-25 20:23
已编辑
算法工程师
超级旋转这个题的case是不是有问题啊
OhMyGakki:弱鸡的二分查找算法,特别慢,我也不知道怎么过的。 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;     } }
投递华为等公司10个岗位 >
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务