【发布时间】:2022-02-02 09:48:27
【问题描述】:
问题:https://leetcode.com/problems/maximum-units-on-a-truck/ 我应该根据内部元素的第二个值按降序对大小为 2 的数组进行排序(例如 [[1,3],[2,2],[3,1]])。即对于第一个元素[1,3],根据值 3. ,但我的代码导致错误:没有找到适合 sort() 的方法。一些帮助将不胜感激。
这是我的java代码
class Solution {
public int maximumUnits(int[][] boxTypes, int truckSize) {
Arrays.sort(boxTypes, new Comparator<int[][]>() {
public int compare(final int[][] entry1, final int[][] entry2) {
if (entry1[0][0] < entry2[0][0])
return 1;
else return -1;
}
}
);
for (int i = 0; i < boxTypes.length; i++)
System.out.println(boxTypes[i]);
return 0;
}
}
【问题讨论】:
-
当您尝试对
int[][]进行排序时,您的比较器应该比较该数组的元素。那些类型为int[],而不是int[][]。如果两个条目相等,您还应该考虑返回 0,否则您的排序充其量是不可预测的,甚至会因异常而失败。
标签: java arrays sorting comparator greedy