We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- Algorithms
- Greedy
- Largest Permutation
- Discussions
Largest Permutation
Largest Permutation
+ 0 comments C++ code solution
vector<int> largestPermutation(int k, vector<int> arr) { vector<int> cparr; cparr = arr; sort(cparr.rbegin(), cparr.rend()); long count = 0; for (long i = 0; i < cparr.size(); i++){ if (count == k){break;} for (long j = i; j < arr.size(); j++){ if (arr[j] == cparr[i] && i != j){ swap(arr[i],arr[j]);count++; break; } } } return arr; }
+ 0 comments Here is my solution in java, javascript, python, C, C++, Csharp HackerRank Largest Permutation Problem Solution
+ 0 comments My sweet ans simple solution in c++
vector<int> largestPermutation(int k, vector<int> arr) { int n=arr.size(); map<int,int>mp; for(int i=0;i<n;i++){ mp.insert({arr[i],i}); } vector<int> a(arr); sort(a.begin(),a.end()); int swp=0; for(int i=0;i<n-1;i++){ int max_e=a[a.size()-1]; int max_i=mp[max_e]; a.pop_back(); if(max_i==i) continue; else{ swp++; swap(arr[i],arr[max_i]); mp[arr[i]]=i; mp[arr[max_i]]=max_i; } if(swp==k)break; } return arr; }
+ 0 comments js Sol:O(n)
let map=new Map(); for(let i=0;i<arr.length;i++){ map.set(arr[i],i); } let n=arr.length; let i=0; while(k!=0 && n>0){ //1 let val=arr[i]; //2 if(n>val){ //2 arr[i]=n; // arr[map.get(n)]=val map.set(val,map.get(n)); map.delete(n); k--; } i++; n--; } return arr;
+ 1 comment def largestPermutation(k, arr): n = len(arr) d = {arr[i]: i for i in range(n)} for i in range(n): if k == 0: break if arr[i] == n - i: continue j = d[n - i] arr[i], arr[j] = arr[j], arr[i] d[arr[i]], d[arr[j]] = i, j k -= 1 return arr
This solution is correct
Load more conversations
Sort 363 Discussions, By:
Please Login in order to post a comment