在未排序且重复的数组中查找数组的最大下标
Finding the largest subscript of an array in a unssorted and repetitive array
我有一个未排序的重复数组,如 {1,1,2,2,3,3,5,5,4,4,4} ,我想找到数组中最大的数字及其最大的位置。例如 5 被重复两次,我想获得第二个 5 的位置。我应该如何处理。我尝试以相反的方式对数组进行排序并检查下一个数字并找到它的 location.Can 这是完成的快点。任何线索?
此代码returns最大位置的最大数字,假设 arr 是您的数字数组。
int maxPosition = 0;
for(int i = 1; i < arr.length; i++)
{
if(arr[maxPosition] <= arr[i])
maxPosition = i;
}
return maxPosition;
如果你可以使用 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());
我有一个未排序的重复数组,如 {1,1,2,2,3,3,5,5,4,4,4} ,我想找到数组中最大的数字及其最大的位置。例如 5 被重复两次,我想获得第二个 5 的位置。我应该如何处理。我尝试以相反的方式对数组进行排序并检查下一个数字并找到它的 location.Can 这是完成的快点。任何线索?
此代码returns最大位置的最大数字,假设 arr 是您的数字数组。
int maxPosition = 0;
for(int i = 1; i < arr.length; i++)
{
if(arr[maxPosition] <= arr[i])
maxPosition = i;
}
return maxPosition;
如果你可以使用 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());