Untitled
unknown
plain_text
9 months ago
1.2 kB
5
Indexable
import java.util.*;
public class FrequencySort {
public static int[] frequencySort(int[] nums) {
Map<Integer, Integer> freqMap = new HashMap<>();
// Step 1: Count frequencies
for (int num : nums) {
freqMap.put(num, freqMap.getOrDefault(num, 0) + 1);
}
// Step 2: Sort with a custom comparator
Arrays.sort(nums, (a, b) -> {
int freqA = freqMap.get(a), freqB = freqMap.get(b);
if (freqA == freqB) {
return Integer.compare(b, a); // Descending order if frequency is same
}
return Integer.compare(freqA, freqB); // Ascending order of frequency
});
return nums;
}
public static void main(String[] args) {
int[] nums1 = {1, 1, 2, 2, 2, 3};
System.out.println(Arrays.toString(frequencySort(nums1))); // Output: [3,1,1,2,2,2]
int[] nums2 = {2, 3, 1, 3, 2};
System.out.println(Arrays.toString(frequencySort(nums2))); // Output: [1,3,3,2,2]
int[] nums3 = {-1, 1, -6, 4, 5, -6, 1, 4, 1};
System.out.println(Arrays.toString(frequencySort(nums3))); // Output: [5,-1,4,4,-6,-6,1,1,1]
}
}
Editor is loading...
Leave a Comment