Java算法-腾讯真题

第一道题

WXG的秘书有一-堆的文件袋, 现在秘书需要把文件袋嵌套收纳起来

请你帮他计算下,最大嵌套数量。

给你一一个二维整数数组folders,其中folders[]= wi, hi],表示第i个文件袋的宽度和长度

当某一个文件袋的宽度和长度都比这个另外-个文件袋大的时候,

中前者就能把后者装起来,称之为一组文件袋。

请计算,最大的一组文件袋的数量是多少。

输入: [[6,10].[11,14].[6,1],[16,14],[13,2]]

输出:3

public static int process(int[][] folders) {

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

        for(int i = 0; i < length; i ++) {
            array[i] = folders[i][1];
        }

        int[] dp = new int[length];
        int[] end = new int[length];
        dp[0] = 1;
        end[0] = array[0];

        int L = 0;
        int R = 0;

        int result = 1;

        for(int i = 1; i < length; i ++) {
            int left = L;
            int right = R;
            while(left <= right) {
                int mid = (left + right) / 2;

                if(end[mid] >= array[i]) {
                    right 

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

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

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

全部评论

相关推荐

2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务