Hulu 9.16 笔试 第一题 100%

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Main {
    private static int min = Integer.MAX_VALUE;
    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    public static void main(String[] args) throws ParseException {
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.nextLine();
        HashMap<String, ArrayList<String>> map = new HashMap<>();

        for (int i = 0; i < k; i++) {
            String s = scanner.nextLine();
            String[] split = s.split(" ");
            ArrayList<String> val = map.get(split[1]);
            if (val == null){
                ArrayList<String> list = new ArrayList<>();
                list.add(split[0]);
                map.put(split[1],list);
            }else {
                if (!val.contains(split[0])){
                    val.add(split[0]);
                    map.put(split[1],val);
                }
            }
        }
        int n = scanner.nextInt();

        ArrayList<Map.Entry<String, ArrayList<String>>> entries = new ArrayList<>(map.entrySet());
        entries.sort(new Comparator<Map.Entry<String, ArrayList<String>>>() {
            @Override
            public int compare(Map.Entry<String, ArrayList<String>> o1, Map.Entry<String, ArrayList<String>> o2) {
                Date date1 = null;
                Date date2 = null;

                try {
                    date1 = simpleDateFormat.parse(o1.getKey());
                    date2 = simpleDateFormat.parse(o2.getKey());
                } catch (ParseException e) {
                    throw new RuntimeException(e);
                }
                return date1.compareTo(date2);
            }
        });
        for (int i = 0; i < entries.size(); i++) {
            count(entries,n,i);
        }
        System.out.println(min==Integer.MAX_VALUE?-1:min);
    }

    public static void count(ArrayList<Map.Entry<String, ArrayList<String>>> entries,int n,int index) throws ParseException {
        HashSet<String> set = new HashSet<>();
        Date indexD = simpleDateFormat.parse(entries.get(index).getKey());
        for (int i = index; i < entries.size(); i++) {
            Map.Entry<String, ArrayList<String>> entry = entries.get(i);
            set.addAll(entry.getValue());
            if (set.size() >= n){
                Date now = simpleDateFormat.parse(entries.get(i).getKey());
                min = Math.min(min,(int)((now.getTime()-indexD.getTime())/1000/60/60/24)+1);
                return;
            }
        }
    }
}

#hulu笔试#
全部评论
我半个小时写完了第一道,第二道没看懂跳过去,然后写了半个小时第三道没写出来
点赞 回复 分享
发布于 2022-09-16 20:08 广东
不能用getDate吗
点赞 回复 分享
发布于 2022-09-16 20:17 湖北
Date用得不熟,🈚️了
1 回复 分享
发布于 2022-09-16 20:05 天津
其他两道,来不及了,看都没看
点赞 回复 分享
发布于 2022-09-16 20:04 陕西

相关推荐

風に薫る:前阵子把一个面试时老托腮抖腿的挂了 太松弛真不行
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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