我的代码基本上遍历一个数组,找到最大值,然后找到与之相关的索引。我遇到的问题是我希望一个数组中的索引而不是多个。
例如(实际输出):
[1] [2] [3] [4]
通缉输出:[1,2,3,4]
这是我的代码:
int index;
int num = myArray[0];
for (int i = 0; i < myArray.length; i++) {
if (num < myArray[i]) {
num = myArray[i];
}
}
for (int j = 0; j < myArray.length; j++) {
if(num == myArray[j]){
index = j;
System.out.println("[" + j + "]");
}
}
我不知道如何在不重做所有代码的情况下执行此操作。感谢。
答案 0 :(得分:1)
int index;
int num = myArray[0];
for (int i = 0; i < myArray.length; i++) {
if (num < myArray[i]) {
num = myArray[i];
}
}
System.out.print("[");
int count = 0;
for (int j = 0; j < myArray.length; j++) {
if(num == myArray[j]){
index = j;
if(count++ > 0)
System.out.print(",");
System.out.print(j);
}
}
System.out.println("]");
答案 1 :(得分:0)
int maxValue = myArray[0];
int countMaxValues = 1;
for (int i = 1; i < myArray.length; i++) {
if (myArray[i] > maxValue) {
maxValue = myArray[i];
countMaxValues = 1;
}
else if (myArray[i] == maxValue) {
countMaxValues++;
}
}
int maxValueIndices = new int[countMaxValues];
int i = 0;
for (int j = 0; j < myArray.length; j++) {
if(myArray[j] == maxValue){
maxValueIndices[i++] = j;
}
}
System.out.println(Arrays.toString(maxValueIndices));