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
  • 相关阅读:
    MySQL 清理slowlog方法
    MySQL定位锁争用比较严重的表
    Jvm介绍
    MyEclipse6.5的SVN插件的安装
    BASE64图片转字符串
    JDK常用工具
    Ftp服务端安装-Linux环境
    数据结构之队列
    自定义Exception异常
    基于Lua语言的触动精灵脚本开发
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9033525.html
Copyright © 2011-2022 走看看