java next permutation
public static boolean next_permutation(int[] arr) {
int len = arr.length;
int i = len - 1;
// 1. find largest i where arr[i - 1] < arr[i]
while (i > 0) {
if (arr[i - 1] < arr[i]) break;
i--;
}
if (i <= 0) return false;
// 2. find largest j where arr[i - 1] < arr[j] and j >= i
int j = len - 1;
while (j >= i) {
if (arr[i - 1] < arr[j]) break;
j--;
}
// 3. swap elements between arr[i-1] and arr[j]
swap(i - 1, j, arr);
// 4. reverse elements from i to end of array
len--;
while (i < len) {
swap(i, len, arr);
len--;
i++;
}
return true;
}
public static void swap(int x, int y, int[] arr) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
Also in Java:
- how to import an arraylist in java
- android get last crash adb
- to char array java
- how to collect objective in java
- creating file in specific location in java application
- how to create a thread local variable in java
- kotlin android intent pass data
- creating a program about user asked to enter a number and enters 0 to stop, then calculates the sum of numbers entered, the average, the length of positive numbers and negative numbers entered by the user in java
- ndroid.support.v4.content.FileProvider
- convert from integer to character java
- load contents of file into string java
- java split string
- java thread
- run static method java
- arrays.fill java
- java override equals and hashcode
- how to know if String is the same java
- FORM EN JAVA SCRIPT
- filter in list by time java
- place.getlatlng() returning null
- how to declare a linked list in java
- arraylist in java
- add one character to string java
- resurce leak java