반응형
static boolean nextPermutation(int[] arr){
int i = arr.length-1;
while(i>0 && arr[i-1]>=arr[i]) --i;
if(i==0) return false;
int j = arr.length - 1;
while(arr[i-1]>=arr[j]) --j;
int temp = arr[i-1];
arr[i-1] = arr[j];
arr[j] = temp;
int k = arr.length-1;
while(i<k){
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
i++; k--;
}
return true;
}
static boolean prevPermutation(int[] arr)
{
int i = arr.length - 1;
while (i > 0 && arr[i - 1] <= arr[i]) --i;
if (i == 0) return false;
int j = i - 1;
while (j + 1 <= arr.length-1 && arr[j + 1] <= arr[i - 1]) ++j;
int temp = arr[i-1];
arr[i-1] = arr[j];
arr[j] = temp;
int k = arr.length-1;
while(i<k){
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
i++; k--;
}
return true;
}
반응형
'Java' 카테고리의 다른 글
[JAVA] Comparator 란? (feat. Generics ) (0) | 2021.02.24 |
---|---|
[JAVA] Comparable 이란? (0) | 2021.02.19 |
[JAVA] next_permutation, prev_permutation (0) | 2020.09.19 |
백트래킹을 이용한 순열 in java (0) | 2020.08.30 |
[JAVA] 비트 연산자를 이용하여 조합 & 부분집합 & 부분집합 여부파악 (0) | 2020.08.30 |
String[] To ArrayList<String>, ArrayList<String> To String[] (0) | 2020.08.25 |
댓글0