import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
int a[] = new int[index];
Scanner scanner2 = new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
a[i] = scanner2.nextInt();
}
int max = findMaxByStream(a);
System.out.println(max);
}
private static int findMaxByStream(int[] a) {
return Arrays.stream(a).max().getAsInt();
}
}
每次输入后就用新值和原有的最大值比对一下,就不需要在输入完成后再比对整个数组了
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
int max = Integer.MIN_VALUE;
int a[] = new int[index];
Scanner scanner2 = new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
a[i] = scanner2.nextInt();
max = max > a[i] ? max : a[i];
}
System.out.println(max);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
Scanner scanner2 = new Scanner(System.in);
int max = Integer.MIN_VALUE;
for (int i = 0; i < index; i++) {
int num = scanner2.nextInt();
if (max < num) {
max = num;
}
}
System.out.println(max);
}
不用把所有结果都存到数组里再比较,可以拿下一个值和当前max比较 ,谁大就把谁赋值给max
如果能帮到你,望点下我的回答的【采纳】谢啦
你有用的代码一共就一句话,还想怎么优化呢
你时间都消耗在等待用户输入上面了,计算也根本不消耗什么时间啊
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int index = scanner.nextInt();
Scanner scanner2 = new Scanner(System.in);
int max = MIN_VALUE;
int tmp;
for (int i = 0; i < index; i++) {
tmp = scanner2.nextInt();
if(tmp > max) max = tmp
}
System.out.println(max);
}
如果是前面的输入太慢,那就通过文件输入,