题解 | 小红闯关
小红闯关
https://www.nowcoder.com/practice/7ce4b75f7a304be481e73bc4dd2705a4
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] a = new int[n];
for(int i = 0;i < n;i ++ ) a[i] = sc.nextInt();
long sum=0;
PriorityQueue<Integer>pq=new PriorityQueue<>(Comparator.reverseOrder());
for(int i=n-1;i>=0;i--){
sum+=a[i];
if(i>=k){
pq.offer(a[i]);
if(i%k==0)sum-=pq.poll();
}
}
System.out.println(sum);
}
}
查看14道真题和解析