Untitled
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