给定一个未排序的数组,您需要找到数组中o(n) 时间复杂度第二大的元素。
例如:
int[] arr1={7,5,6,1,4,2};
Second largest element in the array : 6
您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o ( nlogn ) 时间内完成,
算法:
在数组中查找第二大数的 Java 程序:
创建名为的主 Java 类 FindSecondLargestMain.java
FindSecondLargestMain.java
package org.arpit.java2blog;
public class FindSecondLargestMain {
public static void main(String args[])
{
int[] arr1={7,5,6,1,4,2};
int secondHighest=findSecondLargestNumberInTheArray(arr1);
System.out.println("Second largest element in the array : "+ secondHighest);
}
public static int findSecondLargestNumberInTheArray(int array[])
{
// Initialize these to the smallest value possible
int highest = Integer.MIN_VALUE;
int secondHighest = Integer.MIN_VALUE;
// Loop over the array
for (int i = 0; i < array.length; i++) {
// If current element is greater than highest
if (array[i] > highest) {
// assign second highest element to highest element
secondHighest = highest;
// highest element to current element
highest = array[i];
} else if (array[i] > secondHighest && array[i]!=highest)
// Just replace the second highest
secondHighest = array[i];
}
// After exiting the loop, secondHighest now represents the second
// largest value in the array
return secondHighest;
}
}
当你运行上面的程序时,你会得到以下输出:
Second largest element in the array : 6
这就是如何在数组中找到第二大数字的全部内容。
问题内容: 我只是在练习一些MIT Java作业。但是,我不确定如何找到第二大数字。http://ocw.csail.mit.edu/f/13 问题答案: 仅对数组进行排序以查找订单统计信息太浪费了。您可以通过遵循与现有算法相似的算法找到第二大元素,并使用一个代表第二大数字的附加变量。 当前,下一个元素可以大于最大值或等于/小于最大值,因此单个元素就足够了: 考虑两个变量,下一个元素可能是 大于最
问题内容: 我很难理解在数组中找到第二大数字的方法背后的逻辑。所使用的方法是在数组中找到最高的,但小于先前最高的(已经找到)。我仍然不明白的是为什么有必要。例如,我输入了三个数字:98、56、3。没有它,最高和第二高将都是98。请解释。 问题答案: 找到第二高实际上很简单: 这是O(N)一口气。如果你想接受联系,则更改为,但是如果数组中至少有2个元素,它将返回。如果数组仅包含相同的数字,它也将返回
我有一个阵列 我想找到数组第一列的最大值,84 这是我的整个代码,它给我这个数组中每列的最大值
问题内容: 给你一个包含 1 到 n 的整数数组,但数组中从 1 到 n 的数字之一丢失了。您需要提供最佳解决方案来找到丢失的数字。数组中的数字不能重复。 例如: 问题答案: 使用公式 n=n*(n+1)/2 求 n 个数字的总和 查找给定数组中存在的元素的总和。 减法(n 个数字的总和 - 数组中存在的元素的总和)。 查找数组中缺失数字的Java程序: 当你运行上面的程序时,你会得到以下输出:
问题内容: 我需要知道在对象数组中查找第二大元素的方法。例如 如果存在Book类的一系列对象,这些对象的属性如书名,价格,库存数量 我们如何列出价格第二高的书以及其他属性,例如名称和库存数量 问题答案: 做一个的从它,它的排序使用,并采取元素索引1。
我试图找到给定排序数组的最大K数。 ex:输入- 到目前为止,我编写的代码返回最大的K元素,但它需要返回最大的K数字。任何帮助都将不胜感激。