queue-reconstruction-by-height
https://leetcode.com/problems/queue-reconstruction-by-height/ // https://discuss.leetcode.com/topic/60394/easy-concept-with-python-c-java-solution/5 // 先按照高度从大到小排,同样高度按人数从小到大排 // 然后按照前面的人数,来进行插入 import java.util.Arrays; import java.util.Comparator; import java.util.LinkedList; import java.util.List; public class Solution { public int[][] reconstructQueue(int[][] people) { Arrays.sort(people, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]; } }); List<int[]> res = new LinkedList<>(); for (int[] cur : people) { res.add(cur[1], cur); } return res.toArray(new int[people.length][]); } /* public static void main(String[] args) { // write your code here System.out.println("Hello"); int[][] people = {{7,0}, {4,4}, {7,1}, {5,0}, {6,1}, {5,2}}; Main mn = new Main(); int[][] ret = mn.reconstructQueue(people); StringBuilder sb = new StringBuilder(); for (int i=0; i<ret.length; i++) { for (int j=0; j<ret[0].length; j++) { sb.append(ret[i][j]); sb.append(','); } sb.append('|'); } System.out.println(sb.toString()); } */ }
注意这一句
return res.toArray(new int[people.length][]);
经过实验,填写 (new int[][2]) 或者 (new int[][]) 都是不行的。需要在前一个下标处填写。而填写的数值范围是0到length,再大再小都不行。在这个范围内,返回的结果都是一样的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!