lc周赛用到了自定义排序,简单整理一下
假设compare的参数有两个,分别为o1和o2,compare方法的返回值有三个,分别是-1,0,1
分别代表:
-1: s1 < s2
0 : s1 = s2
1 : s1 > s2
public static void main(String[] args) {
String[][] strs = new String[][]{{"233", "0"}, {"132", "1"}, {"321", "2"}, {"121", "3"}};
Arrays.sort(strs, test124325432::compare);
for (int i = 0; i < strs.length; i++) {
System.out.println("value = " + strs[i][0] + " idx = " + strs[i][1]);
}
}
static int compare(String[] s1, String[] s2) {
// 1 : s1 > s2
// 0 : s1 = s2
// -1 : s1 < s2
for (int i = 0; i < s1[0].length(); i++) {
char c1 = s1[0].charAt(i);
char c2 = s2[0].charAt(i);
if (c1 > c2) return 1;
else if (c1 < c2) return -1;
}
return 0;
}