Basic4 基础练习 数列特征
题目如下:
这题其实也没什么好说的,要记得上述想要的max、min和sum操作,在输入数据的循环中就可以实现了,没必要多写几个循环。除了这种写法之外,就还有用stream来实现,也很方便,但效率肯定没第一种写法快。
package basic;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* @Description: 基础练习 数列特征
* @ClassName: Basic4
* @author: fan.yang
* @date: 2020/07/15 10:42
*/
public class Basic4 {
/**
* 纯算法写法 在输入数组的循环中 就进行sum max min 这是效率最高的 171ms
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
long sum = 0;
int k;int max = -10000;int min = 10000;
for(int i = 0;i < n;i++){
k = scanner.nextInt();
sum += k;
if(k > max){
max = k;
}
if(k < min){
min = k;
}
}
System.out.println(max + "\n" + min + "\n" + sum);
}
/**
* 用stream也可以 但效率和内存都没上面的ok 300ms
*/
/*public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
List<Integer> list = new ArrayList<>();
for(int i = 0;i < n;i++){
list.add(scanner.nextInt());
}
int max = list.stream().max(Integer::compareTo).get();
int min = list.stream().min(Integer::compareTo).get();
long sum = list.stream().mapToInt(e -> e).sum();
System.out.println(max + "\n" + min + "\n" + sum);
}*/
}