You are viewing a single comment's thread. Return to all comments →
C++, O(n*ln(n))
vector<int> largestPermutation(int k, vector<int> arr) { set<pair<int, int>, greater<pair<int, int>>> descValueToInd; int i = 0, n = (int)arr.size(); for (i = 0; i < n; i++) descValueToInd.insert(make_pair(arr[i], i)); for (i = 0; i < n; i++) { auto maxvi = *(descValueToInd.begin()); descValueToInd.erase(descValueToInd.begin()); if (arr[i] < maxvi.first) { descValueToInd.erase(make_pair(arr[i], i)); descValueToInd.insert(make_pair(arr[i],maxvi.second)); swap(arr[i], arr[maxvi.second]); if (--k <= 0) break; } } return arr; }
Seems like cookies are disabled on this browser, please enable them to open this website
Largest Permutation
You are viewing a single comment's thread. Return to all comments →
C++, O(n*ln(n))