【LeetCode:216. 组合总和 III + 递归】

这篇具有很好参考价值的文章主要介绍了【LeetCode:216. 组合总和 III + 递归】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试

🚩 题目链接

  • 216. 组合总和 III

⛲ 题目描述

找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:

只使用数字1到9
每个数字 最多使用一次
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。

示例 1:

输入: k = 3, n = 7
输出: [[1,2,4]]
解释:
1 + 2 + 4 = 7
没有其他符合的组合了。
示例 2:

输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]
解释:
1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9
没有其他符合的组合了。
示例 3:

输入: k = 4, n = 1
输出: []
解释: 不存在有效的组合。
在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。

提示:

2 <= k <= 9
1 <= n <= 60

🌟 求解思路&实现代码&运行结果


⚡ 递归

🥦 求解思路
  1. 该题目通过递归来求解,在1到9的数字中,找到k个可以组成n的不同结果的形式返回。注意,数组中的元素最多可以选择一次。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {

    List<List<Integer>> ans = new ArrayList<>();

    List<Integer> list = new ArrayList<>();

    public List<List<Integer>> combinationSum3(int k, int n) {
        dfs(1, k, n);
        return ans;
    }

    public void dfs(int index, int k, int n) {
        if (index > 10 || k < 0 || n < 0) {
            return;
        }
        if (k == 0 && n == 0) {
            ans.add(new ArrayList<>(list));
        }
        for (int i = index; i < 10; i++) {
            list.add(i);
            dfs(i + 1, k - 1, n - i);
            list.remove(list.size() - 1);
        }
    }
}
🥦 运行结果

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试

【LeetCode:216. 组合总和 III + 递归】,LeetCode每日一题打卡,# 递归/回溯系列,leetcode,算法,java,dfs,递归,面试文章来源地址https://www.toymoban.com/news/detail-857988.html

到了这里,关于【LeetCode:216. 组合总和 III + 递归】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Day 25 | 回溯 216.组合总和III 、17.电话号码的字母组合

    题目 文章讲解 视频讲解 思路: 以回溯函数做对称,上面做了什么操作,下面也是 题目 文章讲解 视频讲解 思路:思路上和组合很像,不同的是对字符串进行操作 还得再想想

    2024年01月21日
    浏览(30)
  • 代码随想录22| 216.组合总和III, 17.电话号码的字母组合

    题目链接/文章讲解:链接地址 视频讲解:链接地址 代码思路:回溯三部曲: 1.确定函数参数:n,k,sum,startIndex; 2.结束条件,path == k,并且如果sum==n 结束递归 3.递归回溯逻辑。 题目链接/文章讲解:链接地址 视频讲解:链接地址 代码思路:传入参数:输入的数字,第几个数字的

    2024年02月11日
    浏览(30)
  • 力扣日记1.22-【回溯算法篇】216. 组合总和 III

    日期:2023.1.22 参考:代码随想录、力扣 题目描述 难度:中等 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入:

    2024年01月23日
    浏览(32)
  • LeetCode-216-组合总和Ⅱ

    题目链接: LeetCode-216-组合总和Ⅱ 解题思路:回溯算法 注意事项注释中有 代码实现:

    2024年02月09日
    浏览(34)
  • 2023-08-04 LeetCode每日一题(不同路径 III)

    点击跳转到题目位置 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。 2 表示结束方格,且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。 返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方

    2024年02月14日
    浏览(30)
  • 2023-07-28 LeetCode每日一题(并行课程 III)

    点击跳转到题目位置 给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations ,其中 relations[j] = [prevCourse j , nextCourse j ] ,表示课程 prevCoursej 必须在课程 nextCourse j 之前 完成(先修课的关系)。同时给你一个下标从 0 开始的整数数组 time ,其

    2024年02月15日
    浏览(35)
  • 2023-09-11 LeetCode每日一题(课程表 III)

    点击跳转到题目位置 这里有 n 门不同的在线课程,按从 1 到 n 编号。给你一个数组 courses ,其中 courses[i] = [durationi, lastDayi] 表示第 i 门课将会 持续 上 durationi 天课,并且必须在不晚于 lastDayi 的时候完成。 你的学期从第 1 天开始。且不能同时修读两门及两门以上的课程。 返

    2024年02月09日
    浏览(28)
  • Leetcode-每日一题【剑指 Offer 32 - III. 从上到下打印二叉树 III】

    请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树:  [3,9,20,null,null,15,7] ,     3    /   9  20     /     15   7 返回其层次遍历结果:

    2024年02月12日
    浏览(33)
  • 2023年7月2日leetcode每日一题打卡——125.验证回文串

    125. 验证回文串 - 力扣(LeetCode) 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个  回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回

    2024年02月12日
    浏览(29)
  • 2023年7月3日leetcode每日一题打卡——136.只出现一次的数字

    136. 只出现一次的数字 - 力扣(LeetCode) 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现 线性时间复杂度 的算法来解决此问题,且该算法 只使用常量额外空间 。 示例1: 示例2: 示

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包