根据身高重建队列【贪心算法】

  1. 根据身高重建队列
    假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 peoplei = hi, ki 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。

请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queuej = hj, kj 是队列中第 j 个人的属性(queue0 是排在队列前面的人)。

复制代码
class Solution {
    public int[][] reconstructQueue(int[][] people) {
        //先进行按照身高降序排列,身高相等则把k小的排在前面
        Arrays.sort(people, (a, b) -> {
            if (a[0] == b[0]) return a[1] - b[1];//身高相等,则按照k升序的方式进行排列;注意a - b 代表正序,从小到大
            return b[0] - a[0];//否则,按照身高h的降序进行排列
        });

        //需要将重构后的people重新进行定位,需要按照k值确认其需要插入的位置
        //重新构造的结果有顺序,应该用链表进行存储,这样插值的过程时间复杂度较低

        LinkedList<int[]> que = new LinkedList<>();//泛型的确定?为什么用int[],代表表里的是外层元素,而内部不用关心,拿来用即可

        //接下来遍历按照身高进行排序后的结果
        for (int[] p : people) {
            que.add(p[1], p);//插入到链表的对应的索引
        }
        return que.toArray(new int[people.length] []);//将链表转化为数组
    }
}
相关推荐
闲云自留地2 天前
Kubernetes 安装保姆级:关 swap、装 containerd、init 集群、calico 一篇通
容器·贪心算法·kubernetes
倒头就睡的小比特3 天前
贪心算法介绍
算法·贪心算法
启观川3 天前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
Logic1017 天前
C语言/数据结构欧几里得算法题解:长方形切割最大正方形——贪心划分计数
c语言·数据结构·算法·贪心算法·时间复杂度·空间复杂度·欧几里得算法
小宋10218 天前
OpenTelemetry GenAI可观测性实战:串起模型、工具、Token与错误
java·人工智能·算法·贪心算法
码爸8 天前
贪心算法介绍与示例
算法·贪心算法
张小凡vip10 天前
Kubernetes--k8s---了解和使用 ServiceAccount
容器·贪心算法·kubernetes
-森屿安年-13 天前
870. 优势洗牌
贪心算法
Logic10114 天前
C语言/数据结构贪心算法题解:字符串趋同——逐位统计最高频率求最小修改代价
c语言·数据结构·贪心算法·字符串·时间复杂度·频率统计·算法题
-dzk-16 天前
【贪心算法】LC 55.跳跃游戏
算法·游戏·贪心算法