Skip to content

Instantly share code, notes, and snippets.

@ernestlv
Created February 21, 2018 00:44
Show Gist options
  • Save ernestlv/8d60bb40521197b84e95e5c575af4917 to your computer and use it in GitHub Desktop.
Save ernestlv/8d60bb40521197b84e95e5c575af4917 to your computer and use it in GitHub Desktop.
check if you need just one swap to sort a list of number
function isOneSwapSort(A){
for ( let f = A.length - 1; f > 0; f--) {
for (let i=0; i<f; i++) {
if ( A[f] < A[i] ){
let temp = A[i];
A[i] = A[f];
A[f] = temp;
if ( isOneSwapSort(A) > 0 ) return 2; //more than one swap
return 1; //one swap
}
}
}
return 0 //already sorted
}
function solution(A) {
var res = isOneSwapSort(A);
return res === 0 || res === 1 ? true : false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment