Last updated on October 5th, 2024 at 04:49 pm

Here, We see ** Queue Reconstruction by Height LeetCode Solution**. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

*List of all LeetCode Solution*

*List of all LeetCode Solution*

## Topics

Greedy

## Companies

## Level of Question

Medium

**Queue Reconstruction by Height LeetCode Solution**

## Table of Contents

**Problem Statement**

You are given an array of people, people, which are the attributes of some people in a queue (not necessarily in order). Each people[i] = [h_{i}, k_{i}] represents the i^{th} person of height h_{i} with **exactly** k_{i} other people in front who have a height greater than or equal to h_{i}.

Reconstruct and return *the queue that is represented by the input array *people. The returned queue should be formatted as an array queue, where queue[j] = [h_{j}, k_{j}] is the attributes of the j^{th} person in the queue (queue[0] is the person at the front of the queue).

**Example 1:****Input:** people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]] **Output:** [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]

**Explanation:**

Person 0 has height 5 with no other people taller or the same height in front.

Person 1 has height 7 with no other people taller or the same height in front.

Person 2 has height 5 with two persons taller or the same height in front, which is person 0 and 1.

Person 3 has height 6 with one person taller or the same height in front, which is person 1.

Person 4 has height 4 with four people taller or the same height in front, which are people 0, 1, 2, and 3.

Person 5 has height 7 with one person taller or the same height in front, which is person 1. Hence [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] is the reconstructed queue.

**Example 2:****Input:** people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]] **Output:** [[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]

**1. Queue Reconstruction by Height LeetCode Solution C++**

class Solution { public: static bool comp(vector<int>& a, vector<int>& b){ if(a[0] == b[0]) return a[1] < b[1]; return a[0] > b[0]; } vector<vector<int>> reconstructQueue(vector<vector<int>>& people) { sort(people.begin(), people.end(), comp); vector<vector<int>> ans; for(auto man : people){ ans.insert(ans.begin()+man[1], man); } return ans; } };

**2. Queue Reconstruction by Height LeetCode Solution Java**

class Solution { public int[][] reconstructQueue(int[][] people) { Arrays.sort(people, (a,b) -> a[0] == b[0] ? a[1] - b[1] : b[0] - a[0]); List<int[]> ordered = new LinkedList<>(); for (int[] p: people) ordered.add(p[1], p); return ordered.toArray(new int[people.length][2]); } }

**3. Queue Reconstruction by Height Solution JavaScript**

var reconstructQueue = function(people) { let res = [] people.sort((a, b) => a[0] == b[0] ? a[1] - b[1] : b[0] - a[0]) people.forEach(val => { res.splice(val[1], 0, val) }) return res };

**4. Queue Reconstruction by Height Solution Python**

class Solution(object): def reconstructQueue(self, people): output=[] people.sort(key=lambda x: (-x[0], x[1])) for a in people: output.insert(a[1], a) return output