排序應用: 身高由高到矮排列 Sort the People_Leetcode #2418

閱讀時間約 3 分鐘

題目敘述: Sort the People

給定兩個輸入陣列,第一個陣列代表每個人的姓名,第二個陣列代表每個人的身高。

依照身高從高到矮進行排列,輸出每個人的名字


測試範例:

Example 1:

Input: names = ["Mary","John","Emma"], heights = [180,165,170]
Output: ["Mary","Emma","John"]
Explanation: Mary is the tallest, followed by Emma and John.

Example 2:

Input: names = ["Alice","Bob","Bob"], heights = [155,185,150]
Output: ["Bob","Alice","Bob"]
Explanation: The first Bob is the tallest, followed by Alice and the second Bob.

約束條件

Constraints:

  • n == names.length == heights.length

鎮列長度皆為n

  • 1 <= n <= 10^3

最少一筆資料,最多一千筆資料

  • 1 <= names[i].length <= 20

名字最短一個字元,最長20個字元

  • 1 <= heights[i] <= 10^5

高度最矮1單位,最高十萬單位

  • names[i] consists of lower and upper case English letters.

名字只會有大寫或小寫英文字母。

  • All the values of heights are distinct.

每個人的身高都不相同。


演算法 照身高排序

核心資訊是身高。

先依據身高(key)和姓名(value)建立字典。

接著依照身高從高到矮排序,輸出對應的名字。


程式碼 照身高排序

class Solution:
def sortPeople(self, names: List[str], heights: List[int]) -> List[str]:
height_dict = dict(zip(heights,names)) # // height_dict = {180: 'Mary', 165: 'John', 170: 'Emma'}
names = []

for key in sorted(height_dict.keys(),reverse=True):
names.append(height_dict[key])
return names

複雜度分析

時間複查度: O( n log n)

排序成本平均耗費O( n log n)

空間複雜度: O(n)

建立字典所需空間為O(n)


Reference:

[1] Sort the People - LeetCode

86會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
給定一個輸入陣列,每一個tuple代表節點之間了從屬關係。 請從從屬關係重建整顆二元樹,並且返回整顆二元樹的根結點。
給定一個陣列,分別代表每位顧客的抵達時間和廚師準備時間。請問平均的等待時間是多少? 等待時間定義為客人開始真正用餐的時間 - 客人抵達的時間。演算法為計算廚師的出餐時間。
本文提供了一個關於模擬法演算法的問題,介紹了操作指令的格式及其解析。透過程式碼模擬每條指令,找出回到根目錄所需的操作次數。本文詳細說明瞭模擬法的複雜度分析,能夠幫助讀者更好地理解這個問題。
題目敘述 Merge Nodes in Between Zeros 給定一個鏈結串列,合併非零區間的節點(以加總的方式合併),輸出合併後的鏈結串列。
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
給定一個輸入陣列,每一個tuple代表節點之間了從屬關係。 請從從屬關係重建整顆二元樹,並且返回整顆二元樹的根結點。
給定一個陣列,分別代表每位顧客的抵達時間和廚師準備時間。請問平均的等待時間是多少? 等待時間定義為客人開始真正用餐的時間 - 客人抵達的時間。演算法為計算廚師的出餐時間。
本文提供了一個關於模擬法演算法的問題,介紹了操作指令的格式及其解析。透過程式碼模擬每條指令,找出回到根目錄所需的操作次數。本文詳細說明瞭模擬法的複雜度分析,能夠幫助讀者更好地理解這個問題。
題目敘述 Merge Nodes in Between Zeros 給定一個鏈結串列,合併非零區間的節點(以加總的方式合併),輸出合併後的鏈結串列。
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
題目敘述 All Ancestors of a Node in a Directed Acyclic Graph 給定一個有向無環圖,請找出每個點的祖先,以陣列的形式返回答案。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
一直以來,我對於詩歌是「不可譯」這種看法不予苟同,理由很簡單,因為如果詩歌不可翻譯的話,那麼我們憑藉什麼與外國詩歌交流以打開嶄新的視界,又如何從異文化的詩歌思想中,得到深化本國文化系統的養份與契機?換句話說,設若將「不可譯」的消極性和否定性,目的在提醒譯詩者應當嚴謹不可放逸,它就為自身開創了新的可能
Thumbnail
高一,在高中學制裡年紀最小,最菜的一群。 在他們的心中,以下這些人的『地位』,大概是長這樣的排序: 高三學長姐 > 高二學長姐 > 老師 > 父母 難怪社團裡,學長姐交待的事,都會必恭必敬地如期完成! 但是老師或父母交待的事,就不一定了! #長兄如父,長姐如母……
Thumbnail
排序是EXCEL一個相當基礎且實用的功能,就是可以幫助我們將數據由大小小排列,或是資料快速分類排序。 但排序根據使用的方式不同其實有三種隱藏的功能,可以快速解決職場工作上特定的疑難雜症 先描述一下三種問題,操作方法在文章後面的影片中 💡第一種-移除資料空白列 資料中若有很多空白列想
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
如果我開一個雜貨店,詩歌也將會是我的零錢。
Thumbnail
如果你懂日文,可以試著念念看旁邊的俳句,瞭解一下文義,對照圖像,或許你能夠感受到這種特有的日式氛圍。「幽玄」是一種幽微、玄妙的境界,概念來自老莊,傳入日本後成為日本文化與美學的一個基礎成份。
今年4月至今,我寫了八首台灣俳句。鑑於當前俳句寫作者,大多以自身感受及日常生活事物,作為創作題材,因此我嘗試以台灣歷史及相關人事物,作為創作題材,並以「詠史」作為俳句的名稱開頭。俳句格式方面,我儘量遵循每句的字數限制、韻腳押韻、使用表現季節的詞語等規定,不隨便打破前人設立的格式。不足之處,敬請指教!
Thumbnail
一者才華傑出,卻因而受到「創作」的綑綁;另者揮灑自如,卻始終見不得光。他們相遇,沒有太多的浪漫,只有面對語言時的熱情,以及那被激起的火花。
秋日赤豔豔 墨鏡、機車配風涼 悠然晴天闊     〈椅子〉 那人靜靜默默 隨時承擔 全力支持 伴你提筆 陪你思量 期盼生活增添美好 許多詩文綻放如花
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
一直以來,我對於詩歌是「不可譯」這種看法不予苟同,理由很簡單,因為如果詩歌不可翻譯的話,那麼我們憑藉什麼與外國詩歌交流以打開嶄新的視界,又如何從異文化的詩歌思想中,得到深化本國文化系統的養份與契機?換句話說,設若將「不可譯」的消極性和否定性,目的在提醒譯詩者應當嚴謹不可放逸,它就為自身開創了新的可能
Thumbnail
高一,在高中學制裡年紀最小,最菜的一群。 在他們的心中,以下這些人的『地位』,大概是長這樣的排序: 高三學長姐 > 高二學長姐 > 老師 > 父母 難怪社團裡,學長姐交待的事,都會必恭必敬地如期完成! 但是老師或父母交待的事,就不一定了! #長兄如父,長姐如母……
Thumbnail
排序是EXCEL一個相當基礎且實用的功能,就是可以幫助我們將數據由大小小排列,或是資料快速分類排序。 但排序根據使用的方式不同其實有三種隱藏的功能,可以快速解決職場工作上特定的疑難雜症 先描述一下三種問題,操作方法在文章後面的影片中 💡第一種-移除資料空白列 資料中若有很多空白列想
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
如果我開一個雜貨店,詩歌也將會是我的零錢。
Thumbnail
如果你懂日文,可以試著念念看旁邊的俳句,瞭解一下文義,對照圖像,或許你能夠感受到這種特有的日式氛圍。「幽玄」是一種幽微、玄妙的境界,概念來自老莊,傳入日本後成為日本文化與美學的一個基礎成份。
今年4月至今,我寫了八首台灣俳句。鑑於當前俳句寫作者,大多以自身感受及日常生活事物,作為創作題材,因此我嘗試以台灣歷史及相關人事物,作為創作題材,並以「詠史」作為俳句的名稱開頭。俳句格式方面,我儘量遵循每句的字數限制、韻腳押韻、使用表現季節的詞語等規定,不隨便打破前人設立的格式。不足之處,敬請指教!
Thumbnail
一者才華傑出,卻因而受到「創作」的綑綁;另者揮灑自如,卻始終見不得光。他們相遇,沒有太多的浪漫,只有面對語言時的熱情,以及那被激起的火花。
秋日赤豔豔 墨鏡、機車配風涼 悠然晴天闊     〈椅子〉 那人靜靜默默 隨時承擔 全力支持 伴你提筆 陪你思量 期盼生活增添美好 許多詩文綻放如花