携程5.27笔试第二题(抽奖序列)

import java.util.HashMap;
import java.util.Map;

public class Main2 {
    static int winner(int[] s, int[] t) {
        int len = s.length;
        Map<Integer, Integer> window = new HashMap<>();
        Map<Integer, Integer> needs = new HashMap<>();
        for (int a : t) {
            needs.put(a, needs.getOrDefault(a, 0) + 1);
        }
        int left =0;
        int right = 0;
        // 最短序列的长度
        int res = Integer.MAX_VALUE;
        int valid = 0;
        // 起始位置
        int start = 0;
        while (right < len) {
            int a = s[right];
            right++;
            if (needs.containsKey(a)) {
                window.put(a, window.getOrDefault(a, 0) + 1);
                if (needs.get(a).equals(window.get(a))) {
                    valid++;
                }
            }
            while (needs.size() == valid) {
                if (right - left < res) {
                    start = left;
                    res = right - left;
                }
                int b = s[left];
                left++;
                if (needs.containsKey(b)) {
                    if (needs.get(b).equals(window.get(b))) {
                        valid--;
                    }
                    window.put(b, window.get(b) - 1);
                }
            }
        }
        return start == 0 ? 0 : start + 1;
    }

    public static void main(String[] args) {
        int[] s = {1,2,5,4,3,4,7,1,4,9,3,1};
        int[] t = {3,1, 4};
        System.out.println(winner(s, t));
    }
}

#笔试题目##携程#
全部评论
xd你不会抄我的吧,一毛一样,变量名都不带改的
点赞 回复 分享
发布于 2021-05-27 22:01

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

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