【发布时间】:2016-11-07 09:38:43
【问题描述】:
由于是周末,我已经尝试完成这个问题大约 2 天了,我无法联系学校的任何导师。我创建了一个循环,在非空数组中找到最大值,然后将该数组中最大数字的最低索引与数组中的最后一个值交换。
例如
swapLargest([1, 7, 5, 7, 4, 2]) → [1, 2, 5, 7, 4, 7]
但运行它会出现
[1, 7, 5, 7, 2, 4]
这是我的代码
int[] swapLargest(int[] a) {
int max = Integer.MIN_VALUE;
for(int i = 1; i <a.length; i++){ // starting from 0
if(a[i] > max){
max = a[i];
max = i;
}
}
int temp = a[max];
a[max]=a[a.length-1];
a[a.length-1] = temp;
return a;
}
最后是问题的链接:http://codingbat.com/prob/p227094 如果你想用我的测试你的结果。到目前为止,这将通过 4/11 测试。
我真的是编程新手,如有任何提示,将不胜感激。
谢谢!
【问题讨论】:
-
max = a[i]; max = i您将两次分配给同一个变量-第一次分配的结果被第二次覆盖。也许您需要分配给两个不同的变量。