标签:return people 队列 queue 406 int 身高
描述
假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。
请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。
链接
406. 根据身高重建队列 - 力扣(LeetCode) (leetcode-cn.com)
解法:贪心
1 class Solution { 2 public int[][] reconstructQueue(int[][] people) { 3 // 身高从大到小排(身高相同k小的站前面) 4 Arrays.sort(people,(a,b) ->{ 5 if (a[0] == b[0]) return a[1] - b[1]; 6 return b[0] - a[0]; 7 }); 8 9 LinkedList<int[]> queue = new LinkedList<>(); 10 11 for (int[] p : people) { 12 queue.add(p[1], p); // 根据 p[1]的值定 p 的 插入位置 13 } 14 return queue.toArray(new int[people.length][]); 15 } 16 }
参考
carl
标签:return,people,队列,queue,406,int,身高 来源: https://www.cnblogs.com/oligei11/p/15740945.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。