Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CombinationsGenerator implements Iterator {
- private int n, k;
- private int[] array;
- public CombinationsGenerator(int n, int k) {
- this.n = n;
- this.k = k;
- array = new int[k];
- for (int i = 0; i < k; i++)
- array[i] = n - i;
- array[k - 1]++; // Fix for the first next() call
- }
- @Override
- public boolean hasNext() {
- return array[0] > k;
- }
- @Override
- public int[] next() {
- for (int i = k - 1; i >= 0; i--) {
- if (array[i] > k - i - 1) {
- array[i]--;
- for (int j = i + 1; j < k; j++) {
- array[j] = array[j - 1] - 1;
- }
- break;
- }
- }
- return array;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement