给定一个大小为N的数组A,您需要找到它的最大值、第二最大值和第三最大值元素。尝试在每个测试用例中以O(N)求解它
输入
输入的第一行包含测试用例的数量T。
对于每个测试用例,输入的第一行包含一个整数N,表示数组A中的元素数。下一行包含A的N个(空格分隔)元素。
Constraints:
1 <= T <= 100
3 <= N <= 10^6
1 <= A[i] <= 10^9
在我的代码中,除了一个显示MLE的测试用例之外,每个测试用例都通过了。
import java.io.*; // for handling input/output
import java.util.*; // contains Collections framework
// don't change the name of this class
// you can add inner classes if needed
class Main {
public static void main (String[] args) {
// Your code here
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
while(size>0){
int n = sc.nextInt();
int myarray[] = new int [n];
for(int j=0; j<n;j++) {
myarray[j]= sc.nextInt();
}
printNumber(myarray);
size--;
}
}
public static void printNumber(int [] myarray){
int first=0;
int second=0;
int third=0;
for(int i=0;i<myarray.length;i++){
if (myarray[i] > first){
third=second;
second=first;
first=myarray[i];
}
else if (myarray[i] > second){
third = second;
second = myarray[i];
}
else if (myarray[i] > third)
third = myarray[i];
}
System.out.println(first+" "+second+" "+third);
}
}
//you only need to save the first second and third numbers not all of them
int first=0;
int second=0;
int third=0;
for(int i = 0;i<n;i++){
int curNum = sc.nextInt();
if (curNum > first){
third=second;
second=first;
first=curNum;
}
else if (curNum > second){
third = second;
second = curNum;
}
else if (curNum > third)
third = curNum;
}
}
我申请了一份工作,未来的雇主给我发了以下黑客问题,在公共场所找不到。 给出一个整数数组,计算所有可能对的任何项和任何索引较低的较小项之间的最大差值。换句话说,对于数组,查找所有i,j的的最大值,其中
泰森已经为贝布莱德世界锦标赛做好了准备。锦标赛以团队为基础,每个团队可以有N名成员。一个玩家只能与一个玩家战斗。G-Revolution团队非常兴奋,因为他们已经进行了大量练习。G-Revolution团队的负责人肯尼创建了一个数据库,在那里他有关于其他团队成员和自己团队成员力量的数据。比赛将在一段时间后开始,肯尼在比赛前搬到自助餐厅吃点心。 G革命团队将在一段时间内战斗,当有人从自助餐厅绑架肯尼
问题内容: 如何通过代码最大化JFrame? 问题答案: 试试这个:
我的应用程序还没有发布。通过Google Play测试应用程序的Alpha/Beta测试者的最大数量是多少?对于iOS来说,每个构建需要1000个外部测试人员。Google Play的限制是多少?
给定一个数组,编写一个程序以在大小的所有子数组中找到最大 gcd 我的代码: 它是O(N^2),还能再优化吗?
对于这个公式 我必须制定一个方法来自动化它,我已经收到了4个例子来尝试它。 x=1 x=3 x = 4 然而,当我插入11时,答案应该是3.0198773447,我收到的是-1.78316945E8:/ 这是我的代码: