✅创作者:陈书予
🎉个人主页:陈书予的个人主页
🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区
🌟专栏地址: Java华为OD机试真题(2022&2023)
文章目录
- 1. 题目描述
- 2. 输入描述
- 3. 输出描述
- 4. Java算法源码
- 5. 测试
- 6.解题思路
1. 题目描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:1≤n≤1000 ,输入的整数满足 1≤val≤10000 。
2. 输入描述
第一行输入两个整数n和k
第二行输入一个整数数组
3. 输出描述
从小到大输出最小的k个整数,用空格分开。
4. Java算法源码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int n = sc.nextInt();
int k = sc.nextInt();
int arr[] = new int[n];
for(int i = 0;i < arr.length;i++){
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
for(int j = 0;j<k;j++){
System.out.print(arr[j] + " ");
}
}
sc.close();
}
5. 测试
6.解题思路
- 读取输入的整数 n 和 k。
- 创建一个大小为 n 的整数数组 arr。
- 使用循环读取 n 个整数,并将它们存储到数组 arr 中。
- 对数组 arr 进行升序排序,使用 Arrays.sort() 方法。
- 使用循环遍历数组 arr 的前 k 个元素,并按照升序顺序输出它们。
- 重复步骤 1~5,直到没有更多的输入数据。