# [LeetCode]#1636. Sort Array by Increasing Frequency

Environment: Python 3.8

Key technique: Counter, lambda

Given an array of integers `nums`, sort the array in increasing order based on the frequency of the values. If multiple values have the same frequency, sort them in decreasing order.

Return the sorted array.

Example 1:

`Input: nums = [1,1,2,2,2,3]Output: [3,1,1,2,2,2]Explanation: '3' has a frequency of 1, '1' has a frequency of 2, and '2' has a frequency of 3.`

Example 2:

`Input: nums = [2,3,1,3,2]Output: [1,3,3,2,2]Explanation: '2' and '3' both have a frequency of 2, so they are sorted in decreasing order.`

Analysis:

1. Use Counter to provide the frequency of number.
2. Sorted it in decreasing order and return it.

Solution:

`import collectionsclass Solution:    def frequencySort(self, nums):        freq = collections.Counter(nums)                return sorted(nums,key = lambda x : (freq[x], -x))`

Submissions:

Reference:

https://leetcode.com/problems/sort-array-by-increasing-frequency/discuss/1033968/Python-beat-97-using-counter-and-sort()

Interesting in any computer science.