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

leetcode hot100组合综合四

在这里插入图片描述
本题中,是要求nums中求的总和为target的排列数,因为题中说了,元素顺序不同,则可以视为不同的结果之一。

所以,根据对背包问题的总结,本题中元素可以重复使用,是完全背包并且需要求排列数,则我们需要考虑遍历顺序,先遍历背包(target),再遍历物品(nums)。并且在遍历背包的时候,我们应该采用正序遍历,因为是可以重复使用元素的。

递推公式:dp[j] += dp[j-nums[i]]。并且我们在初始化的时候,dp[0]应该为1,否则得出的结果就都是0了。

注意:这里背包也从0开始遍历,但是在最后写递推公式的时候,需要满足i>=nums[j],这样才能保证dp[i-nums[j]]索引正常。

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

相关文章:

  • neo4j常用代码
  • nginx 日志改为json格式
  • 【前端工程化面试题】webpack proxy的工作原理,为什么能解决跨域问题
  • Mac远程连接Windows 11
  • 【软件架构】02-复杂度来源
  • 深入理解指针(c语言)
  • 外包干了3个多月,技术退步明显。。。。
  • 【Linux基础】vim、常用指令、组管理和组权限
  • Git笔记——2
  • Docker镜像加速
  • Bert基础(三)--位置编码
  • Ubuntu22.04防火墙ufw用法
  • fastApi笔记06-请求体-多个参数
  • 外包干了一个月,技术明显进步。。。。。
  • Rabbitmq入门与应用(三)-RabbitMQ开发流程
  • objectMapper、ObjectNode、JsonNode调用接口时进行参数组装
  • Redis篇----第六篇
  • Spring 类型转换、数值绑定与验证(一)— DataBinder
  • 向量数据库Milvus字符串查询
  • 《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 准80后湖北省财政厅副厅长徐晶华已调任襄阳市副市长
  • 纪念|海上金石学的兴盛与王昶《金石萃编》
  • 中国黄金协会:一季度我国黄金产量同比增1.49%,黄金消费量同比降5.96%
  • 主播说联播丨六部门出台新政!来华买买买,实惠多多多
  • 在差异中建共鸣,《20世纪美国文学思想研究》丛书出版