※ 引述《enmeitiryous (enmeitiryous)》之铭言:
: 2418 sort the people
: 给定两个array:names和heights,heights[i]是names[i]的对应身高,回传根据身高排序
: 由高到矮的名字array
: 思路:根据身高倒序sort回传配对人名或是用身高当索引的map依序回传人名再颠倒
: vector<string> sortPeople(vector<string>& names, vector<int>& heights) {
: int n=heights.size();
: map<int,string> dd;
: vector<string> ans;
: for(int i=0;i<n;++i){
: dd[heights[i]]=names[i];
: }
: for(auto j: dd){
: ans.push_back(j.second);
: }
: reverse(ans.begin(),ans.end());
: return ans;
ez守门员来了 zip起来根据身高sort再把名字传回去
class Solution:
def sortPeople(self, names: List[str], heights: List[int]) -> List[str]:
return [name for _, name in sorted(zip(heights, names), reverse=True)]