首页 > 试题广场 >

输入n个整数,输出其中最小的k个

[编程题]输入n个整数,输出其中最小的k个
  • 热度指数:182667 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入n个整数,找出其中最小的k个整数并按升序输出

本题有多组输入样例

数据范围: ,输入的整数满足

输入描述:

第一行输入两个整数n和k
第二行输入一个整数数组



输出描述:

从小到大输出最小的k个整数,用空格分开。

示例1

输入

5 2
1 3 5 7 2

输出

1 2
const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
let list=[];
rl.on('line', function (line) {
    list.push(line);
    if(list.length==2){
        let k = list[0].split(' ')[1];
        let arr = list[1].split(' ');
        arr.sort((a,b)=>a-b);
        console.log(arr.slice(0,k).join(' '));
        list = [];
    }
});

发表于 2021-11-22 22:46:23 回复(0)
while(line = readline()) {
    let requirement = line.split(' ');
    let total = parseInt(requirement[0]);
    let outputCount = parseInt(requirement[1]);
    let inputArr = readline().split(' ');
    let toInt = [];

    for (let i = 0; i < total; i++) {
        toInt.push(parseInt(inputArr[i]));
    };
    
    toInt.sort((a, b) => {
        return a - b;
    });
    
    console.log(toInt.slice(0, outputCount).join(' '));
};

编辑于 2020-06-15 20:52:11 回复(0)
 function fliter_arr(arr,k){
    var arr=arr;
    arr=sort_bubble(arr);
    var res=[];
    for(var i=0; i<k; i++){
        res.push(arr[i]);
    }

    return res.join(" ");

}

function sort_bubble(arr){
    var arr=arr;
    for(var i=0, len=arr.length; i<len; i++){
        for(var j=0; j<len-i-1; j++){
            if(parseInt(arr[j])>parseInt(arr[j+1])){
                var tem=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tem;
            }
        }
    }
    return arr;
}

while(line1=readline()){
    var line2=readline();

    var k=parseInt(line1.split(" ")[1]);
    var arr=line2.split(" ");
    var res=fliter_arr(arr,k);
    console.log(res);
}

发表于 2018-02-28 08:52:14 回复(0)

问题信息

难度:
3条回答 38225浏览

热门推荐

通过挑战的用户

查看代码