我应该编写一个程序,在未排序的整数数组中找到最大的索引。
使用以整数数组作为参数的方法。该方法应搜索数组并返回最大值的索引。
所以我编写了一个返回最高值的程序,例如它返回13作为最高数字而不是索引2.那么我将如何返回索引而不是最高数字呢?如果这是一个简单的解决方案,我的其余代码看起来是否正确?谢谢!
public class LargestInteger
{
public static void main(String[] args)
{
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(findLargest(largeArray));
}
public static int findLargest(int array[])
{
int largest = array[0];
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest)
largest = array[i];
}
return largest;
}
}
答案 0 :(得分:3)
在java 8中,您可以简单地执行此操作:
获得最高分:
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(IntStream.of(largeArray).max().getAsInt());
结果:13
总结一下:
System.out.println(IntStream.of(largeArray).sum());
结果:68
答案 1 :(得分:2)
也可以用,
int[] largeArray = {5,4,13,7,7,8,9,10,5};
int largestElement = findLargest(largeArray);
int index = Arrays.asList(5,4,13,7,7,8,9,10,5).indexOf(largestElement);
答案 2 :(得分:1)
您需要保留并存储最大的索引。试试这个:
public static int findLargest(int array[])
{
int largest = array[0];
int largestIndex = 0;
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest) {
largest = array[i];
largestIndex =i;
}
}
return largestIndex;
}
答案 3 :(得分:0)
在方法的末尾创建一个for
循环,以及一个像index
这样的变量。搜索列表并查找变量是否匹配,记住每次都增加index
变量。
示例:
int index = 0;
for (int i : array)
{
if (i == largest)
{
break;
}
index++;
}
return index;
答案 4 :(得分:0)
您可以添加获取最大数量和数组的其他方法,然后搜索该数字的索引:
public class LargestInteger
{
public static void main(String[] args)
{
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(indexOfLargest(largeArray, findLargest(largeArray)));
}
public static int findLargest(int array[])
{
int largest = array[0];
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest)
largest = array[i];
}
return largest;
}
public static int indexOfLargest(int array[], int number)
{
for (int i = 0; i < array.length; i++) {
if (array[i] == number)
return i;
}
return -1;
}
}