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

文章目录

题目描述

题解思路

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

而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的元素组合个数 转换而来,其中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/

相关推荐
郝学胜-神的一滴几秒前
干货版《算法导论》 01:从问题定义到正确性证明
数据结构·人工智能·深度学习·神经网络·算法·机器学习
大肥羊学校懒羊羊4 分钟前
特殊乘法的计算
数据结构·c++·算法
IronMurphy5 分钟前
【算法四十一】763. 划分字母区间
算法
cpp_250110 分钟前
P2430 严酷的训练
数据结构·c++·算法·动态规划·洛谷·背包dp
Rabitebla14 分钟前
【数据结构】实现通讯录:基于C语言动态顺序表
c语言·开发语言·数据结构·算法
tankeven17 分钟前
动态规划专题(06):树形动态规划(未完待续)
c++·算法·动态规划
米粒121 分钟前
力扣算法刷题 Day 52
算法·leetcode·职场和发展
今儿敲了吗22 分钟前
应用实战2:新闻列表
学习·算法
Tomhex25 分钟前
Go泛型实战:类型参数化应用
golang
小雅痞43 分钟前
[Java][Leetcode hard] 68. 文本左右对齐
java·开发语言·leetcode