题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
import java.util.Scanner; import java.util.TreeMap; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { //使用二维数组排序;下次试一试treapMap试一试 Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); int[][] table = new int [n][2]; for (int i = 0; i < n; i++) { table[i][0] = in.nextInt(); table[i][1] = in.nextInt(); } in.close(); int current = -1; String str = ""; table = sort2DArray(table, 0); for (int i = 0; i < table.length - 1; i++) { current++; int next = current + 1; if (table[current][0] == table[next][0]) { table[next][1] += table[current][1]; } else { str += table[current][0] + " " + table[current][1] + ","; } if (next == table.length - 1) str += table[next][0] + " " + table[next][1] + ","; } String[] strss = str.split(","); for (String str1 : strss) System.out.println(str1); } public static int[][] sort2DArray(int[][] arrays, int col) { //根据某一列数据排序 Arrays.sort(arrays, new Comparator<int[]>() { @Override public int compare(int[] in1, int[] in2) { // TODO Auto-generated method stub return Integer.compare(in1[col], in2[col]);//根据0列数据给数组排序 } }); return arrays; } }