生日宴(利用数列排序)

图片说明

import java.io.IOException;
import java.util.*;
import java.util.Collections;
import java.util.Comparator;



public class Main {


    static class People{
        String name;
        int bir;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();

        ArrayList<People> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            People p = new People();
            p.name = sc.next();

            p.bir = sc.nextInt();
            list.add(p);
        }
        Collections.sort(list, new Comparator<People>() {
            @Override
            public int compare(People o1, People o2) {
                return o1.bir > o2.bir?1:-1;
            }
        });
        while(m-- > 0){
            int k = sc.nextInt();
            int s = sc.nextInt();
            int count = 0;
            for (int i = 0; i < n; i++) {
                int a = list.get(i).bir;
                if(a % 10000 == s){
                    count++;
                }
                if(count == k){
                    System.out.println(list.get(i).name);
                    break;
                }
            }
        }
    }
}


##看来是需要再复习一次类的排序了,不过这里需要用到的是新方法。开始创建一个list数列,然后创建People类,把名字和生日放进去。在主类中实例化,然后加入到list中,再用collections方法比较生日的大小(这里是从大到小排序),之后输入k,s。从大到小排序的话直接比较list中和输入的是否相同,count+1计数,当到k的时候就输出名字。

全部评论

相关推荐

CARLJOSEPH...:宝宝你戾气太大了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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