给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。

题目数据保证答案符合 32 位整数范围。

示例 1:

输入:nums = [1,2,3], target = 4
输出:7
解释:
所有可能的组合为:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
请注意,顺序不同的序列被视作不同的组合。
示例 2:

输入:nums = [9], target = 3
输出:0

提示:

1 <= nums.length <= 200
1 <= nums[i] <= 1000
nums 中的所有元素 互不相同
1 <= target <= 1000

解题思路

数组含义

枚举1至target的值,使用一个一维数组记录可以组成当前元素的组合个数

状态转移方程就是

     for _, num := range nums {//枚举nums数组if i-num>0&&dp[i-num]>0{dp[i]+=dp[i-num]}}

dp[i-num]大于0,说明i-num可以由nums数组中的元素组成,并且组合个数为dp[i-num],因此i同样也能由nums数组元素组合而来,并且组合个数为dp[i-num]

初始化

 for _, num := range nums {if num>target {continue  }dp[num]=1}

枚举nums,dp[num]=1,即nums数组中元素可以直接组成一个target值而且组合个数为1

代码

func combinationSum4(nums []int, target int) int {dp := make([]int, target+1)for _, num := range nums {if num>target {continue  }dp[num]=1}for i := 1; i <=target; i++ {for _, num := range nums {if i-num>0&&dp[i-num]>0{dp[i]+=dp[i-num]}}}return dp[target]}

leetcode 377. 组合总和 Ⅳ(dp)相关推荐

  1. leetcode.377. 组合总和 Ⅳ---dp问题

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

  2. [Leetcode] 377. 组合总和 Ⅳ

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

  3. Java实现 LeetCode 377 组合总和 Ⅳ

    377. 组合总和 Ⅳ 给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数. 示例: nums = [1, 2, 3] target = 4 所有可能的组合为: (1, 1 ...

  4. leetcode 377 组合总和IV

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

  5. 100. Leetcode 377. 组合总和 Ⅳ (动态规划-完全背包)

    根据题意可判断属于完全背包队列问题 步骤一.确定状态: 确定dp数组及下标含义 dp数组的大小是target+1, 那么这时候背包的容量才能取到target, dp[j]表示的是装满容量为[j]的背包 ...

  6. 【Leetcode】完全背包问题-377. 组合总和 Ⅳ

    [Leetcode]完全背包问题-377. 组合总和 Ⅳ 题目 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素 ...

  7. 模拟卷Leetcode【普通】377. 组合总和 Ⅳ

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

  8. LeetCode 每日一题 377. 组合总和 Ⅳ

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

  9. 【力扣-动态规划入门】【第 21 天】377. 组合总和 Ⅳ

    标题:377. 组合总和 Ⅳ 难度:中等 天数:第21天,第1/3题 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target ...

最新文章

  1. 区块链基础--工作量证明
  2. 字符串(string类)
  3. 最快让你上手ReactiveCocoa之进阶篇
  4. Android高通平台调试Camera驱动全纪录
  5. PHP 对象、数组间的转换
  6. 吴恩达 coursera ML 第十四课总结+作业答案
  7. 天正坐标标注显示不全_高效率的天正CAD技巧,其实制图很简单!
  8. 有的网线接口为什么做不到轻薄化?
  9. 沿海产业基地与海润光伏共建产业园开工在即
  10. SLAM_BA中重投影误差e 关于相机位姿扰动量δξ 的雅克比矩阵J 公式推导
  11. protected的继承方式有什么特点_酿酒:大曲酒有哪些配料方式?有什么特点?
  12. html的embed标签的元素隐藏,HTML-embed标签详解
  13. CF106C Buns动态规划解决多重背包
  14. Shader学习建议
  15. c盘users在哪(c盘users在哪)
  16. 程序员忽悠女朋友玩gal
  17. mysql list dbs 代替_mysql_list_dbs函数的用法实例汇总
  18. 设计模式 -- 状态模式
  19. mysql 覆盖写入_INSERT ON CONFLICT覆盖写入
  20. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!

热门文章

  1. Linux下基于socket和多线程的聊天室小程序
  2. 计算机系统 学习笔记(0)南京大学(一)第一周
  3. Pythton3实例
  4. MMKV集成与原理,轻松拿下offer
  5. 如何化身BAT面试收割机?不吃透都对不起自己
  6. 还没吃透内存缓存LruCache实现原理的看这篇文章,跳槽薪资翻倍
  7. Eclipse里的快捷键
  8. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用
  9. ES6笔记 -- 字符串拓展
  10. 配置独立于系统的PYTHON环境