描述

给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。

分析

“组合总和” 系列题解汇总:
39. 组合总和
40. 组合总和 II
216. 组合总和 III
377. 组合总和 Ⅳ

不同于前三道题,本题是求个数,是完全背包的解题思路,并且是排列问题,不是组合问题。
相比于让外循环物品内循环背包,外循环背包内循环物品能够穷尽某一背包容量下,物品的排列组合。
比如,示例一中,如果外循环物品内循环背包,就不可能出现(1, 2, 1)、(2, 1, 1)、(3, 1)这三种情况,因为物品1已经在第一次外循环中穷尽了,1只能出现在2,3的前面,不能出现在2,3的后面,但是外循环背包,内循环物品却可以避免这种情况。

class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target+1];dp[0] = 1;for(int i = 1; i <= target; i++){for(int j = 0; j < nums.length; j++){if(i >= nums[j]){dp[i] += dp[i - nums[j]];}}}return dp[target];}
}

00完全背包中等 LeetCode377. 组合总和 Ⅳ NC233 加起来和为目标值的组合(四)相关推荐

  1. 代码随想录44——动态规划:完全背包理论基础、518零钱兑换II、377组合总和IV

    文章目录 1.完全背包理论基础 2.518零钱兑换II 2.1.题目 2.2.解答 3.377组合总和IV 3.1.题目 3.2.解答 4.组合和排列问题的便利顺序 4.1.组合问题 4.2.排列问题 ...

  2. 代码随想录算法训练营第25天|216.组合总和III,17.电话号码的字母组合

    216.组合总和III 力扣题目链接 思路 在组合的基础上加限制条件 剪枝操作 //当和大于n时,往后遍历没有意义,剪枝 if(sum>n){return; } //当剩下的元素个数不足时,剪枝 ...

  3. 代码随想录算法训练营第二十五天|216.组合总和III、17.电话号码的字母组合

    LeetCode 216.组合总和III 链接:216. 组合总和 III 思路: 这道题目与77. 组合仅有一点不同,就是这道题目找到的组合的总和需要满足额外的条件.所以在递归终止条件里增加了一个条 ...

  4. 代码随想录算法训练营第25天 | 216. 组合总和 III,17. 电话号码的字母组合

    代码随想录算法训练营第25天 | 216. 组合总和 III,17. 电话号码的字母组合 216. 组合总和 III 此题相比较于组合 多了一个求和的条件 就可以在终止条件中添加该条件判断 加一个变量 ...

  5. 算法训练Day44 动态规划专题- 背包问题 | 完全背包基础知识;LeetCode518. 零钱兑换(装满背包有多少种方法,组合数);377.组合总和IV(装满背包有多少种方法,排列数)

    前言: 算法训练系列是做<代码随想录>一刷,个人的学习笔记和详细的解题思路,总共会有60篇博客来记录,计划用60天的时间刷完.  内容包括了面试常见的10类题目,分别是:数组,链表,哈希表 ...

  6. leetcode-377:组合总和 Ⅳ

    leetcode-377:组合总和 Ⅳ 题目 解题 方法一:动态规划 题目 题目链接 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 ...

  7. Leetcode每日一题——377.组合总和Ⅳ。完全背包推导。dp数组

    题目链接: 力扣 题目描述: 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素组合的个数. 题目数据保证答案符合 ...

  8. LeetCode-377组合总和IV-中等

    标题:377组合总和IV-中等 题目 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素组合的个数. 题目数据保证 ...

  9. Day 44 | 完全背包理论基础 518. 零钱兑换 II 377. 组合总和 Ⅳ

    完全背包理论基础 完全背包与01背包的区别在于:完全背包同一物品可装多次,而01背包每个物品只能装一次. 因此遍历容量时,从前向后遍历即可! 关于遍历顺序,也与01背包有差别,01背包一维数组只能先遍 ...

最新文章

  1. 【清华集训2016】Alice和Bob又在玩游戏
  2. 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
  3. 针对C++异常的学习
  4. C++结构体作为函数参数传参
  5. 12864液晶使用例程
  6. python sql注入脚本_python辅助sql手工注入猜解数据库案例分析
  7. 计算机辅助设计与制造专业课程,《计算机辅助设计与制造》课程实验指导书
  8. @autowired注解原理_Spring框架第二谈:IOC,xml配置文件给属性赋值,注解实现赋值...
  9. ATL 实现定制的 IE 浏览器栏、工具栏和桌面工具栏
  10. 新手指南: 手把手教你安装 Ubuntu 和 Fedora
  11. 路由器去广告 去除 免刷路由系统 手机网页去广告 安卓去广告 苹果iOS去广告
  12. Windows毫秒精度定时器SetTimer
  13. 双线性插值GPU加速
  14. 中国科学院全国名词委组合数学和计算机科学研究开发中心 顾同新,有关组合数学家陆家羲的几点史实澄清.doc...
  15. VUE项目配置SSR
  16. C++中c_str()函数的用法
  17. 2022杭电多校 第三场 B题 Boss Rush
  18. Excel 单元格 输入内容后 背景自动变色
  19. 我怎么看技术人员去创业公司这件事
  20. 朱嘉明 | 认知未来货币需要新的思想资源

热门文章

  1. Mac睡眠 注销 重启 关机的快捷键
  2. 花了168个小时,我不停和8台智能音箱聊天
  3. [vb版机房] 机房收费系统总结
  4. 重磅!又一个自主研发的国产操作系统要出现了?传中科红旗正研发新一代Linux...
  5. 南京大学大气科学学院王体健教授到访云创
  6. java打包软件静默安装_常用软件的静默安装方法介绍
  7. 平面设计高级全套教程
  8. The Power of Two Random Choices
  9. ADC的几种常见类型
  10. python操作jira添加模块