Untitled
unknown
plain_text
2 months ago
1.2 kB
4
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