Java算法--美团真题

第一道题

有一块10000 * 10000 * 10000的立方体豆腐

豆腐的前左下角放在(0,0,0)点,豆腐的后右上角放在(10000,10000,10000)点

下面给出切法的数据结构

[a,b]

a=1,表示x= b处,-把无穷大的刀平行于yz面贯穿豆腐切过去

a=2,表示y= b处,-把无穷大的刀平行于xz面贯穿豆腐切过去

a=3,表示z= b处,一把无穷大的刀平行于x面贯穿豆腐切过去

a=1or2or3,0<=b<=10000

给定一个n*2的二维数组,表示切了n刀, n <= 10的5次方

返回豆腐中最大的一块体积是多少?

public static long maxCut(int[][] cuts) {
        if(cuts == null || cuts.length == 0) {
            return 10000L * 10000L * 10000L;
        }

        Arrays.sort(cuts, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                if(o1[0] != o2[0]) {
                    return o1[0] - o2[0];
                }
                return o1[1] - o2[1];
            }
        });

        int length = cuts.length;
        int i = 0;
        int pre = 0;
        int maxX = 0;
        while(i < length && cuts[i][0] == 1) {
            maxX = Math.max(maxX, cuts[i][0] - pre);
            pre 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

八股文+场景题+算法真题 文章被收录于专栏

Java全新整理八股文+场景题

全部评论

相关推荐

09-27 12:03
已编辑
北华大学 Java
求指点&nbsp;不玻璃心
给你点了个赞的打工鸭很忙碌:把 华 改成 京
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务