Какова роль функции удаления в этой проблеме подмножества? Может ли кто-нибудь объяснить каждый рекурсивный вызов с использованием массива [1,2,3]? - PullRequest
0 голосов
/ 24 марта 2020

Это функция для поиска подмножеств данного массива. Используемая здесь рекурсия очень запутанная. Не могли бы вы объяснить все рекурсивные вызовы?

private void findAll(List<List<Integer>> result, int[] nums, List<Integer> subset, int start) {
    result.add(new ArrayList<>(subset));

    for (int i = start; i < nums.length; i++) {
        subset.add(nums[i]);
        findAll(result, nums, subset, i + 1);
        subset.remove(subset.size() - 1);
    }
...