zoukankan      html  css  js  c++  java
  • LeetCode 77 组合

    LeetCode 77 组合

    问题描述:
    给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
    组合:对于任意两个数,其组合形式只有一种

    执行用时:1 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:41.2 MB, 在所有 Java 提交中击败了42.48%的用户

    class Solution {
        public List<List<Integer>> combine(int n, int k) {
            List<List<Integer>> combinations = new ArrayList<>();
            List<Integer> combineList = new ArrayList<>();
            backtracking(combineList, combinations, 1, k, n);
            return combinations;
    }
    
    private void backtracking(List<Integer> combineList, List<List<Integer>> combinations, int start, int k, final int n) {
        if (k == 0) {
            combinations.add(new ArrayList<>(combineList));
            return;
        }
        /*每次从当前位置start顺序往后取数一避免重复*/
        /*i<=n-k+1确保从start开始能够取到k个数*/
        for (int i = start; i <= n - k + 1; i++) {  // 剪枝
            combineList.add(i);
            backtracking(combineList, combinations, i + 1, k - 1, n);
            combineList.remove(combineList.size() - 1);
        }
    }
    }
    
  • 相关阅读:
    jq封装的tab切换
    jquery高级函数
    jquery一些基本函数
    javascript中的事件冒泡和事件捕获
    prototype数组方法的实现
    瀑布流布局
    flex弹性布局
    js鼠标点击版tab切换
    js拖拽效果
    js根据className获取元素封装
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13630468.html
Copyright © 2011-2022 走看看