目录
选择题
Java 的方法一般存储在方法区。
编程题
简单来说,就是给你 3n 个人,让你分组,怎样分组才能达到水平最大值。
而水平值则是 一组(3个人) 中的第二大的值,比如: 1,2,4 的水平值是 2。
就拿示例来说吧。
所以按照上面的思路,我们就可以写代码了。
代码实现:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
int[] arr = new int[3 * n];
for (int i = 0; i < arr.length; i++) {
arr[i] = in.nextInt();
}
// 用 long 是为了防止溢出
long ret = getMaxLevel(arr, 0, arr.length - 2);
System.out.println(ret);
}
}
public static long getMaxLevel(int[] arr, int left, int right) {
// 记得先排序
Arrays.sort(arr);
long ret = 0;
while (left < right) {
ret += arr[right];
right -= 2;
left++;
}
return ret;
}
}