描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:1 \le n \le 1000 \1≤n≤1000 ,输入的整数满足 1 \le val \le 10000 \1≤val≤10000
题源:输入n个整数,输出其中最小的k个_牛客题霸_牛客网 (nowcoder.com)
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。
示例1
输入:
5 2
1 3 5 7 2
输出:
1 2
Java:
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int k = sc.nextInt();
int num[] = new int[N];
for(int i = 0; i < N;i++){
num[i] = sc.nextInt();
}
Arrays.sort(num);
for (int i = 0;i < k ; i++){
System.out.print(num[i]+" ");
}
}
}
c++:
#include <iostream>
#include <string>
using namespace std;
#include <algorithm>
int main(){
int N, k = 0;
cin >> N >> k;
int num[1001];
for( int i = 0; i < N; i++) {
cin >> num[i];
}
sort(num , num + N);
for( int i = 0; i < k; i++ ) {
cout << num[i]<<" ";
}
}
时间复杂度:O(nlogn),快排 空间复杂度:O(1)