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 吉林

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
2 12 评论
分享
牛客网
牛客企业服务