【发布时间】:2017-02-14 12:19:31
【问题描述】:
我的代码如下所示:
public class Solution {
public void nextPermutation(int[] nums) {
int k = 0;
for(int i = nums.length -1; i> 0 ;i--){
if(nums[i-1] < nums[i]){
k = i-1;
break;
}
}
if( k == 0) {Arrays.sort(nums); return;}
int tmp = nums[k];
nums[k] = nums[nums.length - 1];
nums[nums.length-1] = tmp;
Arrays.sort(nums,k+1,nums.length,new Comparator<Integer>(){
public int compare(Integer a, Integer b){
return b - a;
}
});
}
}
我想使用比较器对数组进行降序排序,但它总是显示
第 14 行:错误:没有找到适合 sort(int[],int,int, 匿名比较器)
谁能指出问题出在哪里?非常感谢!
【问题讨论】:
-
@cricket_007 ...这是怎么复制的?这个问题询问编译器错误,询问如何加速算法,两者的答案肯定不一样。
-
@QPaysTaxes 错误是因为试图对原语进行排序,是吗?
-
@cricket_007 这不是重复的标准。查看您链接的问题的答案 - 他们是否直接回答问题?当然,你可以得到 an 答案,但关键问题 -
int和Integer不是同一类型,ints 不能在泛型方法中使用all -- 没有解决 -
@QPaysTaxes 这个呢?这也被标记到另一个帖子。 Sort int array in descending order
-
@cricket_007 那是明确询问“我如何对整数进行排序?”。这个人在问“我有应该执行某些任务的代码,但是我遇到了编译器错误。为什么?”任务发生是对整数进行排序这一事实并不意味着什么。再次,查看您提出的副本的答案。他们是否回答了所提出的问题——即“问题出在哪里?”不。他们为手头的任务提供了一个(n 替代)解决方案,这很有用,但不是问题的答案。
标签: java arrays comparator