美文网首页
406. 根据身高重建队列

406. 根据身高重建队列

作者: 名字是乱打的 | 来源:发表于2021-12-20 23:32 被阅读0次

    一题目:

    二思路:

    • 先排序,1.先按照身高排序降序排,2按照位置升序排, 再插入
    • 根本思路:核心思想:高个子先站好位,矮个子插入到K位置上,前面肯定有K个高个子,矮个子再插到前面也满足K的要求
            // [7,0], [7,1], [6,1], [5,0], [5,2], [4,4]
            // 再一个一个插入。
            // [7,0]
            // [7,0], [7,1]
            // [7,0], [6,1], [7,1]
            // [5,0], [7,0], [6,1], [7,1]
            // [5,0], [7,0], [5,2], [6,1], [7,1]
            // [5,0], [7,0], [5,2], [6,1], [4,4], [7,1]
    

    三代码:

    class Solution {
        public int[][] reconstructQueue(int[][] people) {
            Arrays.sort(people, new Comparator<int[]>() {
                @Override
                public int compare(int[] o1, int[] o2) {
                    //如果两个数字相同,按照前面的数字个数升序排
                    if (o1[0]==o2[0]){
                        return o1[1]-o2[1];
                    }else {
                        //不同数字,按数字大小倒序
                        return o2[0]-o1[0];
                    }
                }
            });
    
            List<int[]> res=new LinkedList<>();
            for (int[] curr : people) {
                res.add(curr[1],curr);
            }
            return res.toArray(new int[res.size()][2]);
        }
    }
    

    相关文章

      网友评论

          本文标题:406. 根据身高重建队列

          本文链接:https://www.haomeiwen.com/subject/mdstqrtx.html