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/

相关推荐
AI科技星10 分钟前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
参.商.27 分钟前
【Day41】143. 重排链表
leetcode·golang
条tiao条1 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名1 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
zzh940771 小时前
Gemini 3.1 Pro 硬核推理优化剖析:思维织锦、动态计算与国内实测
算法
2301_807367191 小时前
C++中的解释器模式变体
开发语言·c++·算法
愣头不青2 小时前
617.合并二叉树
java·算法
MIUMIUKK2 小时前
双指针三大例题
算法
灵感__idea2 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法
2301_819414303 小时前
C++与区块链智能合约
开发语言·c++·算法