leecode 406. 根据身高重建队列

本文介绍了一道关于数据结构和算法的题目——根据身高重建队列。内容涉及使用Java实现一个解决方案,通过排序和链表操作来重构队列。主要难点在于理解数据结构的运用和自定义比较器来确定队列顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

406. 根据身高重建队列

        本题必须回顾,主要是数据结构方面迭代知识不熟,暂时不想看,等后期再复习吧

class Solution {
    //本题需要重新回顾,倒是不难,难在对这些数据结构和重写方法不熟练,让我自己写绝对写不出来
    public int[][] reconstructQueue(int[][] people) {
        //比较器,重写方法,若第一个数相等,就比较第二个数,第二个数小的排前面
        //若第一个数不相等,则大数排前面
        Arrays.sort(people, (a, b) -> {
            if (a[0] == b[0]) return a[1] - b[1];
            return b[0] - a[0];
        });

        //linkedList盛放结果,对people遍历,直接向que的索引位置放数组值
        //索引相同时,会直接挤掉原来的数,原来的数按顺序向后走
        LinkedList<int[]> que = new LinkedList<>();
        for (int[] p : people) {
            que.add(p[1],p);
        }
        //需要转成Array变成int[][]二维数组,长度和people相等
        return que.toArray(new int[people.length][]);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值