题解 | #输入n个整数,输出其中最小的k个#

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

https://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int num = in.nextInt();

        int limit = in.nextInt();

        int[] limitArr = new int[limit];
        for(int i = 0;i<num;i++){
            int n = in.nextInt();
            compare(n,limitArr,limit-1);        

        }
        for(int i=0;i<limit;i++){
            System.out.print(limitArr[i]);
            if(i<limit-1){
                System.out.print(" ");
            }
        }
        
    }

    public static boolean compare(int n,int[] limitArr,int index){
        if(index<0){
            return false;
        }
        int x = limitArr[index];
        if(x==0||n<x){
              
              int next =index-1<0?0: limitArr[index-1];
              boolean flag = compare(n,limitArr,index-1); 
              if(flag){
                if(next>0){
                   limitArr[index] =next;
                }
                return flag;
              } else{
                 limitArr[index] = n;
                 return true;
              }
        }
        return false;
    } 
}

全部评论

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务