网站定制 北京,微信关注公众号,保姆给老人做爰神马网站,清新大气企业公司网站源码2418. 按身高排序 给你一个字符串数组 names #xff0c;和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。
对于每个下标 i#xff0c;names[i] 和 heights[i] 表示第 i 个人的名字和身高。
请按身高 降序 顺序返回对应的名字数组 names 。
思路和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。
对于每个下标 inames[i] 和 heights[i] 表示第 i 个人的名字和身高。
请按身高 降序 顺序返回对应的名字数组 names 。
思路
方法一是利用优先级队列自己规定排序策略然后以此将每个人的名字和身高插入最后遍历队列就是结果。
方法二是利用map直接排序map默认是会按照pair的第一个数从小到大排序而题目要求从大到小排序因此对于map遍历的结果要倒转。
class Solution {
public:struct cmp{bool operator()(pairint,stringp1,pairint,stringp2){return p1.firstp2.first;}};vectorstring sortPeople(vectorstring names, vectorint heights) {// mapint,stringhash;// for(int i0;inames.size();i)// {// hash[heights[i]]names[i];// }// vectorstringret;// for(auto e:hash)// {// ret.push_back(e.second);// } // reverse(ret.begin(),ret.end());priority_queuepairint,string,vectorpairint,string,cmpdp;for(int i0;inames.size();i){dp.push({heights[i],names[i]});}vectorstringret;for(int i0;inames.size();i){auto kdp.top();dp.pop();ret.push_back(k.second);}return ret;}
};