当前位置:网站首页>406. Reconstruct the queue according to height
406. Reconstruct the queue according to height
2022-07-03 14:51:00 【Sauce bear】
Topic link
analysis : The title means that we should put an array people[i] = {h,k}, Put it in one place , And can guarantee , There is k individual h Greater than or equal to the current h Of .
First, let's talk about the variables that need to be used :
res[][]: A two-dimensional array used to record the final answer
vis[]: It is used to record whether the element has been placed in this position
count: It is used to record the number of previous ones greater than or equal to the current h The elements of
Then we can think the other way around , First find the smallest h, So the others h It must be bigger than now , Then we only need to consider the following k Just one position , in other words , Currently, this is placed in the k+1 Just one position .( And here for simplicity , I didn't consider having the same h)
Now let's consider the same h The situation of .
In fact, it's also very easy to consider .
We from res Of the 0 Start traversing , When count Less than k When , Then it means that we need to continue to traverse later , Because I haven't found the right place yet .
So when count Self increasing , in other words , When can I find a greater than or equal to the current h The location of ?
First of all : Traverse to the current location without being accessed , Because every time we need to take out people The smallest remaining , therefore , Those that have not been accessed must be placed behind the elements , So it must be greater than or equal to the current h Of , here count+1.
second : Traverse to the element equal to the current h, That is, there are the same h Existing situation , At this time, too count+1.
until People It's all there res that will do .
Then there are two more questions
Question 1 : It's how we find it every time h The smallest ?
Question two : And if the current remaining people The smallest of all h There are many. , Which one to choose ?
Question 1 :
We can people Put it in the small top pile , So every time you get h The smallest .
Question two :
If h identical , So we should choose k The smallest , because h identical ,k The smallest must be in front .
Code :
class Solution {
public int[][] reconstructQueue(int[][] people) {
// Small cap pile h Put the small one on it , h The same thing k Put the small one on it
Queue<int[]> queue = new PriorityQueue<>((i1,i2)->{
if(i1[0]!=i2[0]){
return i1[0]-i2[0];
}else{
return i1[1]-i2[1];
}
});
int n = people.length;
int[][] res = new int[n][2];
// Record whether this location has been visited
boolean[] vis = new boolean[n];
for(int i=0; i<n; i++){
queue.offer(people[i]);
}
while(!queue.isEmpty()){
int[] top = queue.poll();
int count=0;
int i=0;
while(i<n && count<top[1]){
// This location has not been visited perhaps This location has been visited , however h equal
if(!vis[i] || res[i][0]==top[0]){
count++;
}
i++;
}
while(vis[i]){
i++;
}
res[i] = top;
vis[i] = true;
}
return res;
}
}
边栏推荐
- Special research report on the market of lithium battery electrolyte industry in China (2022 Edition)
- 1017 a divided by B (20 points)
- Zzuli:1045 numerical statistics
- [graphics] efficient target deformation animation based on OpenGL es 3.0
- Vs+qt application development, set software icon icon
- Piwigo 2.7.1 sqli learning
- NOI OPENJUDGE 1.6(09)
- Container of symfony
- 亚马逊、速卖通、Lazada、Shopee、eBay、wish、沃尔玛、阿里国际、美客多等跨境电商平台,测评自养号该如何利用产品上新期抓住流量?
- Write a 2-minute countdown.
猜你喜欢
To improve efficiency or increase costs, how should developers understand pair programming?
Amazon, express, lazada, shopee, eBay, wish, Wal Mart, Alibaba international, meikeduo and other cross-border e-commerce platforms evaluate how Ziyang account can seize traffic by using products in th
How can entrepreneurial teams implement agile testing to improve quality and efficiency? Voice network developer entrepreneurship lecture Vol.03
5-1 blocking / non blocking, synchronous / asynchronous
tonybot 人形机器人 查看端口并对应端口 0701
C language to realize mine sweeping
Timecho of Tianmou technology completed an angel round financing of nearly 100 million yuan to create a native timing database of the industrial Internet of things
Adobe Premiere Pro 15.4 has been released. It natively supports Apple M1 and adds the function of speech to text
Creation of data table of Doris' learning notes
4-29——4.32
随机推荐
How to query the baby category of tmall on Taobao
China PETG market forecast and Strategic Research Report (2022 Edition)
FPGA blocking assignment and non blocking assignment
Four data flows and cases of grpc
Vs+qt application development, set software icon icon
Special research report on the market of lithium battery electrolyte industry in China (2022 Edition)
Get permissions dynamically
Vs+qt multithreading implementation -- run and movetothread
C language DUP function
Rasterization: a practical implementation (2)
C # realizes the login interface, and the password asterisk is displayed (hide the input password)
Common shortcut keys in PCB
B2020 分糖果
Zhonggan micro sprint technology innovation board: annual revenue of 240million, net loss of 17.82 million, proposed to raise 600million
C string format (decimal point retention / decimal conversion, etc.)
分布式事务(Seata) 四大模式详解
Use of constraintlayout
tonybot 人形机器人 红外遥控玩法 0630
Address book sorting
How to color ordinary landscape photos, PS tutorial