我有一个未排序且重复的数组,例如 {1,1,2,2,3,3,5,5,4,4,4} ,我想找到数组中的最大数字及其最大位置。例如5 重复了两次,我想获得第二个 5 的位置。我应该如何处理。我尝试以相反的方式对数组进行排序并检查下一个数字并找到它的位置。这可以更快地完成吗?有什么线索吗?
问问题
516 次
2 回答
2
假设 arr 是您的数字数组,此代码返回最大位置处的最大数字。
int maxPosition = 0;
for(int i = 1; i < arr.length; i++)
{
if(arr[maxPosition] <= arr[i])
maxPosition = i;
}
return maxPosition;
于 2015-07-01T14:47:12.590 回答
1
如果您可以使用 java 8,这应该可以:
List<Integer> numbers = Arrays.asList(1, 1, 2, 2, 3, 3, 4, 4, 6, 5, 5, 4, 4, 5);
int lastIndexOf = numbers.lastIndexOf(numbers.stream().max((x1, x2) -> x1 - x2).get());
于 2015-07-01T14:47:22.190 回答