第二题,每次变负数了就淘汰最小的数就行了 private static void solve(int n, int[] arr) { PriorityQueue<Integer> q = new PriorityQueue<>(); int sum = 0; int cnt = 0; for (int i = 0; i < n; i++) { sum += arr[i]; q.add(arr[i]); cnt += 1; if (sum < 0 ) { int tmp = q.poll(); sum -= tmp; cnt -= 1; } } System.out.println(cnt); }

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务