10.11微盟,有赞测试全通过结果就是0%

微盟编程题三个过两个,第三个:前序中序求后序重建二叉树,测试几个都过了但是结果就是0%
有赞编程题两个过一个,第二个:输入整型list,返回最大整除3的数字组合(字符串形式),也是测试全过结果0%
心态炸裂。

public class T3 {
    List<Long> list = new ArrayList<>();
    public long[] buildPostOrder (long[] preorderData, long[] inorderData) {
        // write code here
        TreeNode root = rebuildTree(preorderData, inorderData);
        dfs(root);
        long[] res = new long[list.size()];
        for (int i = 0; i < res.length; i++) {
            res[i] = list.get(i);
        }
        return res;
    }

    private void dfs(TreeNode root) {
        if (root == null){
            return;
        }

        dfs(root.left);
        dfs(root.right);
        list.add(root.value);
    }

    private TreeNode rebuildTree(long[] preorderData, long[] inorderData) {
        int len = preorderData.length - 1;
        return rebuildTreeSolution(preorderData, 0, len, inorderData, 0, len + 1);
    }

    private TreeNode rebuildTreeSolution(long[] preorderData, int preStart, int preEnd,
                                         long[] inorderData, int inStart, int inEnd) {
        if (preStart > preEnd || inStart > inEnd) return null;
        // 重建根节点
        TreeNode root = new TreeNode(preorderData[preStart]);

        // 找到根节点在中序中的位置,作为左右子树划分的依据
        int index = 0;
        long tmp = preorderData[preStart];
        for (int i = inStart; i < inorderData.length; i++) {
            if (inorderData[i] == tmp) {
                break;
            }
            index++;
        }
        // 递归重建左节点右节点
        root.left = rebuildTreeSolution(preorderData, preStart + 1, preStart + index + 1,
                inorderData, inStart, inStart + index - 1);
        root.right = rebuildTreeSolution(preorderData, preStart + index + 1, preEnd,
                inorderData, inStart + index + 1, inEnd);
        return root;
    }
}



public class T2 {
    List<List<Integer>> set = new ArrayList<>();
    public String largestMultipleOfThree (ArrayList<Integer> digits) {
        List<Integer> res = null;
        getSubSet(digits, 0, new ArrayList<>());
        set.sort((l1, l2)->l2.size() - l1.size());
        System.out.println(set);
        for (List<Integer> list :
                set) {
            int sum = list.stream().mapToInt(integer -> integer).sum();
            if (sum % 3 == 0){
                res = list;
                break;
            }
        }

        if (res == null){
            return "";
        }else {
            res.sort((n1,n2)->n2-n1);
            if (res.get(0) == 0) return "0";
            StringBuilder sb = new StringBuilder();
            for (int i :
                    res) {
                sb.append(i);
            }
            return sb.toString();
        }
    }

    private void getSubSet(ArrayList<Integer> digits, int pos, ArrayList<Integer> tmp) {
        if (tmp.size() > 0){
            set.add(new ArrayList<>(tmp));
        }

        for (int i = pos; i < digits.size(); i++) {
            tmp.add(digits.get(i));
            getSubSet(digits, i + 1, tmp);
            tmp.remove(tmp.size() - 1);
        }
    }
}


#微盟##笔试题目#
全部评论
我微盟最后一题也是 测了好几组用例都过了 但是就是百分之0  有赞的倒是都a了  然后两家昨天都约了面试时间
点赞 回复 分享
发布于 2020-10-15 17:25
微盟第三题有问题,考完后我的代码在力扣上提交没问题
点赞 回复 分享
发布于 2020-10-11 22:44
微盟第三题,自己测试数据都过,结果一个案例过不了。。。
点赞 回复 分享
发布于 2020-10-11 22:01
微盟笔试第三个算法题数据应该有问题吧,我调试了10mins,还是0%,直接就交卷了;另外有赞第2个算法题可以用数学+贪心做,很简单的😂
点赞 回复 分享
发布于 2020-10-11 21:35
有赞还有笔试?
点赞 回复 分享
发布于 2020-10-11 20:15
难受
点赞 回复 分享
发布于 2020-10-11 20:14

相关推荐

07-16 18:03
门头沟学院 Java
点赞 评论 收藏
分享
嗨害嗨我来了:你跟他说开迈巴赫呢,一个月好几万,让学弟尝尝一点小小的社会险恶
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 18:02
来组里2个月了,天天让打杂,写的代码不超过200行。现在已经开始摆烂冲秋招了。我感觉4个月,就算周六日全天睡觉,周一到周五一直看黑马也比我来节子实习学到的东西多。
小熊梦奇:😅节子那么多文档,你是一个都不看啊。 大厂的意义在于内部系统对你开放,看明白事情起因经过结果解决措施,实在看不明白,直接聊天系统搜到对应团队去问当时的负责人,大部分情况下都会给你解答。 这才是大厂实习的精髓
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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