java 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 create array of linkedlist in java
- init cap java
- java replaceall single character
- mock ParameterizedTypeReference
- java foreach map
- java string to uuid
- java clear console
- java unique id
- how to end a program in an if statement java
- java map declaration
- socket programming in java
- Error executing Maven. java.io.FileNotFoundException: The specified user settings file does not exist: /etc/java-8-openjdk
- changing double space to single in java script
- load contents of file into string java
- Write a JAVA method that expands a given binomial (ax + by)n, where integers a, b, n are user inputs. For example, if a = 2, b = -12, n = 4 are entered the method should print or return
- java android development get element by id
- number to string java
- arraylist add method
- enhanced for loop java
- Java nested array hashcode
- java lambda list of objects cast
- dictionary in java
- never gonna give you up
- binary string to int java