zoukankan      html  css  js  c++  java
  • leetcode 216. 组合总和 III

    找出所有相加之和为 的 个数的组合组合中只允许含有1 - 9的正整数,并且每种组合中不存在重复的数字。

    说明:

    • 所有数字都是正整数。
    • 解集不能包含重复的组合。 

    示例 1:

    输入: k = 3, n = 7
    输出: [[1,2,4]]
    

    示例 2:

    输入: k = 3, n = 9
    输出: [[1,2,6], [1,3,5], [2,3,4]]

     思路:和上一题的思路一样, 只是加了一个条件, 长度要是规定的长度

     1 class Solution {
     2 public:
     3     void dfs(vector<vector<int>>&ans, vector<int>&subseq, int k, int n, int index){
     4         if(n==0 && subseq.size()==k){
     5             ans.push_back(subseq);
     6             return;
     7         }
     8         for(int i=index; i<10; i++){
     9             subseq.push_back(i);
    10             dfs(ans, subseq, k, n-i, i+1);
    11             subseq.pop_back();
    12         }
    13     }
    14     vector<vector<int>> combinationSum3(int k, int n) {
    15         vector<int> subseq;
    16         vector<vector<int>> ans;
    17         dfs(ans, subseq, k, n, 1);
    18         return ans;
    19     }
    20 };
    有疑惑或者更好的解决方法的朋友,可以联系我,大家一起探讨。qq:1546431565
  • 相关阅读:
    display:flex 布局之 骰子
    vue 生命周期
    vue webpack 懒加载
    后台管理页面基本布局
    模拟ie9的placeholder
    常用的功能封装 pool.js
    六位数字字母验证码
    CommonJs AMD CMD
    项目封版后的总结
    jq 回到顶部
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9033525.html
Copyright © 2011-2022 走看看