当前位置: 首页 > news >正文

377. 组合总和 Ⅳ

给你一个由 不同 整数组成的数组 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
class Solution {
public:int combinationSum4(vector<int>& nums, int target) {//相对于 回溯做此题,dp更快,回溯超时//每个物品能拿n次(正序)----------->>>>> 完全背包// 1、允许 元素相同,顺序不同的结果 。所以是先遍历背包//dp[j]:容量为j的背包,装满 组合为dp[j]种//假如已经有 1  那么装满dp[5],有dp[4]种方法//          2                  dp[3]//.............................//          5                  dp[0]vector<int>dp(target+1,0); //需要累加,所以得赋值为0dp[0] = 1;for(int i = 0;i <= target;i++){for(int j = 0;j < nums.size();j++){//dp[i] + dp[i - nums[j]] < INT32_MAX。还不能写成加法,怕超限if(i >= nums[j] && dp[i] < INT32_MAX - dp[i - nums[j]]) dp[i] += dp[i - nums[j]];}}return dp[target];}
};

http://www.lryc.cn/news/227351.html

相关文章:

  • 【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
  • C语言进阶
  • Linux之gdb
  • 100天精通风控建模(原理+Python实现)——第3天:风控建模中如何处理缺失值?
  • Leetcode—680.验证回文串II【简单】
  • Redis五种数据类型及命令操作(二)
  • 低代码信创开发核心技术(三):MDA模型驱动架构及元数据系统设计
  • HslCommunication模拟西门子读写数据
  • 多测师肖sir_高级金牌讲师_ui自动化po框架版本02
  • 线性判别分析(Linear Discriminant Analysis,LDA)
  • git的分支及标签使用及情景演示
  • 深度解析找不到msvcp120.dll相关问题以及解决方法
  • SQL Server 2022 安装步骤——SQL Server设置身份验证教程
  • Maven各方面配置好了却无法显示版本
  • Jdk 1.8 for mac 详细安装教程(含版本切换)
  • 02MyBatisPlus条件构造器,自定义SQL,Service接口
  • c语言练习11周(6~10)
  • 钉钉API与集简云无代码开发连接:电商平台与营销系统的自动化集成
  • C++算法:包含三个字符串的最短字符串
  • 华为开源carbondata中的使用问题处理
  • AI:76-基于机器学习的智能城市交通管理
  • 区块链游戏,游戏开发
  • 单片机程序无法下载?
  • 【数据库】【sql】如何用SQL实现跨行计算
  • Oracle(概念含安装)
  • P6入门:项目初始化4-项目详情之预算日志及汇总Budget
  • CSS 中BFC是什么?
  • uniapp的几种跳转方式
  • 【MySQL】初识数据库
  • 计算机网络(一)