byeKaworu 2022-01-24 10:09 采纳率: 66.7%
浏览 16
已结题

关于完全背包数据溢出问题

给你一个由 不同 整数组成的数组 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum-iv
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这是我的答案

int combinationSum4(int* nums, int numsSize, int target){
    int dp[1001]={0};
    int ans=0;
    dp[0]=1;
    for(int j=0;j<=target;j++)
    {
        for(int i=0;i<numsSize;i++)
        {
            if(nums[i]<=j)
                dp[j]+=dp[j-nums[i]];
        }
    }
    return dp[target];
}

Char 22: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int' [solution.c]
[10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,111]
999
这是报错和最后输入,请问需要怎么修改

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 2月1日
    • 创建了问题 1月24日

    悬赏问题

    • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
    • ¥15 在matlab中Application Compiler后的软件无法打开
    • ¥15 想问一下STM32创建工程模板时遇到得问题
    • ¥15 Fiddler抓包443
    • ¥20 Qt Quick Android 项目报错及显示问题
    • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
    • ¥15 oracleBIEE analytics
    • ¥15 H.264选择性加密例程
    • ¥50 windows的SFTP服务器如何能批量同步用户信息?
    • ¥15 centos7.9升级python3.0的问题