Untitled
unknown
plain_text
a year ago
833 B
5
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;
}
};Editor is loading...
Leave a Comment