題目連結:
題目意譯:
給定一整數陣列 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 即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。