shlogg · Early preview
Prashant Mishra @prashantrmishra

Optimizing String Frequency With O(1) Time Complexity

Time complexity of frequencySort is O(n log n) due to priority queue operations, not O(1). It's a constant time complexity for inserting k elements into the priority queue where k ≤ 256.

Problem
Time Complexity: The number of distinct characters (k) can be at most 256, so inserting k elements into the priority queue will take O(k log k) time, where k ≤ 256. Therefore, this is bounded by O(256 log 256) = O(1) because it is a constant value.
TC: 

  O(n)O(n)O(n)
, O(n) for creating the map array, + O(1) for building the heap/priorityqueue, + O(n) for creating the result string.
SC: 
  O(n)O(n)O(n)
, for the priority queue of size 256 = O(1), + and 
  O(n)O(n)O(n)
 for StringBuilder str

class Solution {
    public String frequencySort(String s) {
        PriorityQueue<Pair<Chara...