下面两个都是降序排序,若要改成升序,只需要将a[1] - b[1]变成吧b[1]-a[1]即可
Java版本:
c版本:
java代码:
public int maximumUnits(int[][] boxTypes) {
Integer[][] nums = new Integer[boxTypes.length][2];
for(int i = 0;i < boxTypes.length;i++){
nums[i] = new Integer[2];
for(int j = 0;j < 2;j++){
nums[i][j] = boxTypes[i][j];
}
}
Arrays.sort(nums,new Comparator(){
public int compare(Integer[] a,Integer[] b){
return b[1] - a[1];
}
});
}
c代码:
// int cmp(const void * a,const void * b){
// int a1 = *(int *)a;
// int b1 = *(int *)b;
// return a1 - b1;
// }
int cmp(const void * a,const void * b){
int * a1 = *(int* *)a;
int * b1 = *(int* *)b;
return b1[1] - a1[1];
// return a1[1] - b1[1];
}
int maximumUnits(int** boxTypes, int boxTypesSize){
//对数组进行排序
// qsort(boxTypes,boxTypesSize,sizeof(int),cmp);
qsort(boxTypes,boxTypesSize,sizeof(int *),cmp);
// for(int i = 0;i < boxTypesSize;i++){
// printf("%d ",boxTypes[i][1]);
// }
}



