9.7 途虎养车JAVA笔试

编程题一,求m号顾客排队等待时间,HashMap+队列模拟过了100%
public int timeRequiredToBuyCounpons (int[] coupons, int m) {
        // write code here
        LinkedList<Integer> list=new LinkedList<>();
        for(int i=0;i<coupons.length;i++)list.add(i);

        Map<Integer,Integer> map=new HashMap<>();

        for(int i=0;i<coupons.length;i++)map.put(i,coupons[i]);
        int time=0;
        while(map.get(m)!=0){
            int index=list.poll();
            map.put(index,map.get(index)-1);
            time++;
            if(map.get(index)!=0)list.add(index);
        }
        return 10*time;
    }
编程题二,求所有祖父节点(父节点的父节点)为奇数的节点值的和,暴力过100%
        int res=0;
    public int sum (TreeNode root) {
        if(root==null)return 0;
        if(root.val%2==1)getSum(root);
        if(root.left!=null)sum(root.left);
        if(root.right!=null)sum(root.right);
        // write code here
        return res;
    }

    public void getSum(TreeNode root){
        TreeNode left=root.left;
        TreeNode right=root.right;
        if(left!=null){
            if(left.left!=null)res+=left.left.val;
            if(left.right!=null)res+=left.right.val;
        }
        if(right!=null){
            if(right.left!=null)res+=right.left.val;
            if(right.right!=null)res+=right.right.val;
        }
    }
编程题三,求车队喷漆的最小开销,回溯会超时,改完只过了33%这里就不放代码了,希望有大佬能给个正解

算法题还是很容易的,选择题盲区比较多,希望能有机会进面试吧


#笔试#
全部评论
第三题可以原数组上直接dp
1 回复 分享
发布于 2022-09-07 20:41 湖南
第一题可以不用map,在原数组上直接改就行     public int timeRequiredToBuyCounpons(int[] coupons, int m) {         // write code here         ArrayDeque<Integer> queue = new ArrayDeque<>();         for (int i = 0; i < coupons.length; i++) {             queue.add(i);         }         int ans = 0;         while (coupons[m] != 0) {             if (queue.isEmpty()) break;             Integer peopleIndex = queue.poll();             int count = coupons[peopleIndex];             count -= 1;             ans += 10;             coupons[peopleIndex] = count;             if (count == 0) continue;             queue.add(peopleIndex);         }         return ans;     }
1 回复 分享
发布于 2022-09-07 20:43 安徽
最后一个三层DP过了20
点赞 回复 分享
发布于 2022-09-07 20:35 江苏
第三题只过了34.95,第一行每一个数都考虑了,不知道为啥没a,有a的大佬么
点赞 回复 分享
发布于 2022-09-07 20:36 四川
我第二题看错了要的条件,卡了大半个小时真的是醉了
点赞 回复 分享
发布于 2022-09-07 20:36 河南
第三题只要求相邻的两辆车喷漆不同呀,不是所有的车喷漆不同,直接暴力就能过
点赞 回复 分享
发布于 2022-09-07 20:37 江苏
第三题ac代码,二维dp
点赞 回复 分享
发布于 2022-09-07 20:38 北京
第一题计算目标位置和其他位置有多少个非0以贪心过了100,第三题用优先队列贪心过了23好像,感觉思路没什么问题但是想不到。 然后给同程留了半小时去做,没想到同程20分钟不到就a完了😂
点赞 回复 分享
发布于 2022-09-07 20:42 浙江
小菜鸡就会第一题    ,要放弃了 public static int timeRequiredToBuyCounpons(int[] coupons, int m) {         // write code here         int time = 0;         int cur = 0;         while (coupons[m] != 0) {             if (coupons[cur] != 0) {                 coupons[cur] = coupons[cur] - 1;                 cur = (cur + 1) % coupons.length;                 time = time + 10;             } else {                 cur = (cur + 1) % coupons.length;             }         }         return time;     }
点赞 回复 分享
发布于 2022-09-07 20:49 陕西
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-08 13:39 北京
有后续蹲一下,同两题AC,第三题23.3%,9.7上海Java岗
点赞 回复 分享
发布于 2022-09-08 16:06 湖北
目前来说第二批应该比较难进面了
点赞 回复 分享
发布于 2022-09-15 23:26 天津
lz有意向了吗
点赞 回复 分享
发布于 2022-09-26 10:14 吉林

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
2 12 评论
分享
牛客网
牛客企业服务