LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录

题目描述

题解思路

总和为target的元素组合个数 可以由 总和为target - numsj的元素组合个数 转换而来,其中j为nums所有元素的下标

而总和target - numsj的元素组合个数 可以由 总和为target - numsj - numsk的元素组合个数 转换而来,其中k为nums所有元素的下标

依次类推,转换成我们已知的条件 总和为0的元素组合个数为1

这是一种从结果出发,不断转换到我们已知条件的一种操作,通过这题,希望大家能够有所感悟

题解代码

go 复制代码
func combinationSum4(nums []int, target int) int {
    f := make([]int, target + 1)
    f[0] = 1

    for i := 1; i <= target; i++ {
        for _, num := range nums {
            if i >= num {
                f[i] += f[i - num]
            }
        }
    }

    return f[target]
}

题目链接

https://leetcode.cn/problems/combination-sum-iv/description/

相关推荐
sul.i7 小时前
浅析·指针
算法
春日见7 小时前
策略梯度算法
算法
Brilliantwxx7 小时前
【算法从零到千】【1-7】 双指针算法
开发语言·c++·笔记·算法·leetcode·推荐算法
小许同学记录成长7 小时前
孔洞修补算法
算法
随意起个昵称7 小时前
线性dp-计数类题目9(斐波那契字符串)
算法·动态规划
菜菜的顾清寒7 小时前
力扣HOT100(49)动态规划 -- 打家劫舍
算法·leetcode·动态规划
会编程的土豆7 小时前
前端和后端是怎么配合工作的(Go后端视角)
前端·golang·状态模式
葡萄城技术团队7 小时前
观察生活:人是如何分词的
算法·生活
只会写bug的靓仔7 小时前
我把 Electron+Go 的 LOL 战绩工具重写成 Tauri+Rust,安装包从 128 MB 砍到 5 MB
golang·rust·electron
装不满的克莱因瓶7 小时前
什么是特征分解?从数学定义到现实问题的映射
人工智能·数学·算法·机器学习·ai·特征分解