LeetCode 75| 回溯

目录

17 电话号码的字母组合

216 组合总和 |||


17 电话号码的字母组合

class Solution {
private:
    vector<string>res;
    const string strs[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:
    vector<string> letterCombinations(string digits) {
        if(digits.size() == 0)return res;
        getCombinations(digits,0,"");
        return res;
    }
    void getCombinations(string digits,int cnt,string s){
        if(cnt == digits.size()){
            res.push_back(s);
            return;
        }
        int digit = digits[cnt] - '0';
        string str = strs[digit];
        for(int i = 0;i < str.size();i++){
            getCombinations(digits,cnt + 1,s + str[i]);
        }
    }

};

时间复杂度O(3^{N}×4^{M})N是对应三个字母的数字个数,M是对应四个字母的数字个数

空间复杂度O(3^{N}×4^{M})N是对应三个字母的数字个数,M是对应四个字母的数字个数

216 组合总和 |||

class Solution {
private:
    vector<vector<int>>res;
    vector<int>now;
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        dfs(1,0,k,n);
        return res;
    }
    void dfs(int cnt,int sum,int k,int n){
        if(sum > n)return;
        if(now.size() == k){
            if(sum == n)res.push_back(now);
            return;
        }
        for(int i = cnt;i <= 9;i++){
            now.push_back(i);
            sum += i;
            dfs(i + 1,sum,k,n);
            sum -= i;
            now.pop_back();
        }

    }
};

时间复杂度O(N × 2^{N})N为集合的大小,本题中为9,一个有2^{N}个状态(选择或者不选这个数字)

空间复杂度O(N)

相关推荐

  1. leetcode刷刷】回溯77.组合

    2023-12-29 23:08:03       36 阅读
  2. LeetCode79. Word Search——回溯

    2023-12-29 23:08:03       23 阅读
  3. 回溯Leetcode 78. 子集【中等】

    2023-12-29 23:08:03       16 阅读
  4. Leetcode78.子集 - Subset - Python - 回溯

    2023-12-29 23:08:03       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 23:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 23:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 23:08:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 23:08:03       20 阅读

热门阅读

  1. MySQL 设置商品乐观锁号示例

    2023-12-29 23:08:03       37 阅读
  2. 力扣:435. 无重叠区间(贪心)

    2023-12-29 23:08:03       36 阅读
  3. Leetcode的AC指南 —— 哈希法:454. 四数相加 II

    2023-12-29 23:08:03       44 阅读
  4. 配置LDAP 用户连接Oracle

    2023-12-29 23:08:03       46 阅读
  5. 算法笔记(模拟最大三数乘积问题)

    2023-12-29 23:08:03       34 阅读
  6. 三维点通用排序

    2023-12-29 23:08:03       40 阅读
  7. 算术整除——扩散型dp

    2023-12-29 23:08:03       29 阅读
  8. 二维数组调整

    2023-12-29 23:08:03       38 阅读
  9. 算法图解:第七章 狄克斯特拉算法 dijkstra

    2023-12-29 23:08:03       30 阅读
  10. FastAPI使用异步Redis

    2023-12-29 23:08:03       47 阅读
  11. Flink实时电商数仓(九)

    2023-12-29 23:08:03       34 阅读
  12. mysql(51) : 大数据导出为insert, 支持条件查询

    2023-12-29 23:08:03       42 阅读
  13. python3.x编码解码unicode字符串

    2023-12-29 23:08:03       40 阅读