LeetCode 🟢 2418. Sort the People
🔗 🟢 2418. Sort the People 1193
tags: Weekly Contest 312
陣列(Array)
字串(String)
排序(Sort)
雜湊表(Hash Table)
題意
給定一個字串陣列 和一個由 不同的 正整陣列成的 陣列。這兩個陣列的長度都是 。
對於每一個下標 , 和 分別代表第 個人的名字和身高。
請根據人們的身高,降序排列 。
思路:對下標陣列排序
一個比較簡單的做法是將 和 兩個陣列合併成一個二維陣列,然後此二維陣列中的身高降序排序,最後取出排序後的名字即可。在 python
中可以使用 zip
函數來實現,並且可以在一行程式碼中完成。
另外一個比較通用的做法是創建一個下標陣列 ,然後根據 陣列對 陣列進行排序。最後根據排序好的下標陣列,生成排序後的名字列表做為答案。
具體步驟如下:
- 首先,創建一個與 和 相同長度的下標陣列 ,這個陣列的元素是 0 到 的數字。
- 使用這個下標陣列來排序,排序的依據是 中對應的值。我們使用 lambda 函數來定義排序的依據,即對於下標 和 ,如果 則 排在 前面。
- 創建一個答案陣列 ,遍歷排序好的下標陣列,將對應的名字加入答案陣列中。
複雜度分析
- 時間複雜度:,其中 是 的長度。
- 空間複雜度:,需要額外的空間來存儲下標陣列。
1 | class Solution: |
1 | class Solution { |
寫在最後
masterpiece, best quality, high quality,extremely detailed CG unity 8k wallpaper, HDR, High Detail,
1girl, solo, long hair, bangs, brown hair, shirt, long sleeves, dress, white shirt, outdoors, day, white dress, blurry, from side, tree, lips, looking up, building, photo background
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 十六個天亮!
評論
WalineGiscus