ETH官方钱包

前往
大廳
主題

LeetCode - 1636. Sort Array by Increasing Frequency 解題心得

Not In My Back Yard | 2023-01-13 12:00:04 | 巴幣 0 | 人氣 314

題目連結:


題目意譯:
給定一整數陣列 nums,根據數值的出現次數之遞增順序來排序陣列。如果多個數值有著相同的出現次數,則將它們按大小遞減順序來排序。

回傳排序後的陣列。

限制:
1 ≦ nums.length ≦ 100
-100 ≦ nums[i] ≦ 100



範例測資:
範例 1:
輸入: nums = [1,1,2,2,2,3]
輸出: [3,1,1,2,2,2]
解釋: '3' 有著 1 次的出現次數、'1' 有著 2 次的出現次數,而 '2' 有著 3 次的出現次數。

範例 2:
輸入: nums = [2,3,1,3,2]
輸出: [1,3,3,2,2]
解釋: '2' 和 '3' 各自都有著 2 次的出現次數,所以它們將按大小遞減順序來排序。

範例 3:
輸入: nums = [-1,1,-6,4,5,-6,1,4,1]
輸出: [5,-1,4,4,-6,-6,1,1,1]


解題思維:
就是單純地統計每種元素的出現次數。

然後從出現次數小的元素(出現次數一樣的,則各自成為一群,然後對每一群按照數值大小由大到小排)開始,在 answer 中放入對應數量的該元素進去(例如 4 出現了 3 次,則我們會放 3 個 4 到 answer 中),其中 answer 是用來儲存排序後的結果之新陣列。

最後回傳 answer 即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
追蹤 創作集

作者相關創作

相關創作

更多創作