当前位置: 首页 > 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];
    }
}
http://www.dtcms.com/a/8554.html

相关文章:

  • 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
  • leetcode hot100单词拆分
  • 物联网和人工智能的融合
  • MFC中对编码文件的操作01
  • 图片搜索接口的应用展示说明
  • 阿里云ECS香港服务器性能强大、cn2高速网络租用价格表
  • Python学习笔记——自定义函数(基础知识)
  • qt-交通路口仿真
  • 数学的雨伞下:理解世界的乐趣
  • openEuler2203 LTS安装并远程桌面接VMware WorkStation Pro 17
  • 找座位 - 华为OD统一考试(C卷)