Untitled

 avatar
unknown
plain_text
16 days ago
833 B
1
Indexable
class Solution {
public:
    vector<int> lexicographicallySmallestArray(vector<int>& nums, int limit) {
        int n = nums.size();
        vector < int > numsSorted = nums;

        sort(numsSorted.begin(),numsSorted.end());

        unordered_map < int , queue < int > > g;
        unordered_map < int , int > mp;

        int currGroup = 0;

        mp[numsSorted[0]] = currGroup;

        g[currGroup].push(numsSorted[0]);

        for(int i=1;i<n;i++) {
            if(numsSorted[i] - numsSorted[i-1] > limit) {
                currGroup++;            
            }

            g[currGroup].push(numsSorted[i]);
            mp[numsSorted[i]] = currGroup;
        }
        
        for(int i=0;i<n;i++) {
            nums[i] = g[mp[nums[i]]].front();
            g[mp[nums[i]]].pop();
        }

        return nums;
    }
};
Leave a Comment