在未排序和重复的数组中查找数组的最大下标

时间:2015-07-01 14:01:03

标签: java algorithm sorting array-algorithms

我有一个未分类的&重复数组如{1,1,2,2,3,3,5,5,4,4,4},我想找到数组中最大的数字及其最大位置。例如5被修复两次我希望得到第二个5的位置。我应该如何处理。我尝试以相反的方式对数组进行排序并检查下一个数字并找到它的位置。这可以更快地完成。有线索吗?

2 个答案:

答案 0 :(得分:2)

此代码返回最大位置的最大数字,假设arr是您的数字数组。

int maxPosition = 0;
        for(int i = 1; i < arr.length; i++)
        {
            if(arr[maxPosition] <= arr[i])
                maxPosition = i;
        }
        return maxPosition;

答案 1 :(得分: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());