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全新整理八股文 + 场景题 + 算法 精心设计,面试命中率超过80% 专栏优势: 1、问题和答案已经整理到位,答案更专业,可以直接回答,不需要额外总结! 2、场景题讲解清晰,适用于大部分场景的项目,并且持续更新中 3、分享学习心得【知识点的广度和深度,算法有哪些坑,如何准备面试等等】

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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