leetcode 377 组合之和4

题目:

本质上就是dp里的找零或者解方程问题。

思路:

dp。

代码:

 1 class Solution {
 2     public int combinationSum4(int[] nums, int target) {
 3         int n = nums.length;
 4         if (n == 0) {
 5             return 0;
 6         }
 7
 8         int[] opt = new int[target + 1];
 9         opt[0] = 1;
10         for (int i = 1; i <= target; i++) {
11             opt[i] = 0;
12             for (int j = 0; j < n; j++) {
13                 if (i >= nums[j]) {
14                     opt[i] += opt[i - nums[j]];
15                 }
16             }
17         }
18
19         return opt[target];
20     }
21 }

注意事项:

1.初始化,opt[0] = 1;

2.避免数组越界。由于i - nums[j]作为下标,所以需要判断。

原文地址:https://www.cnblogs.com/hiyashinsu/p/10946898.html

时间: 2024-10-09 09:29:36

leetcode 377 组合之和4的相关文章

LeetCode 377.组合求和IV

给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数. 示例: nums = [1, 2, 3]target = 4 所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1) 请注意,顺序不同的序列被视作不同的组合. 因此输出为 7. 算法:动态规划 class Solution { public: int combinationSum4(vector<int>& nums, int

LeetCode OJ:Combination Sum II (组合之和 II)

Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. Each number in C may only be used once in the combination. Note: All numbers (including target) will be posi

[LeetCode] Combination Sum III 组合之和之三

Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers. Ensure that numbers within the set are sorted in ascending order. Example 1

[LeetCode] Combination Sum II 组合之和之二

Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. Each number in C may only be used once in the combination. Note: All numbers (including target) will be posi

LeetCode:组合总数II【40】

LeetCode:组合总数II[40] 题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. 说明: 所有数字(包括目标数)都是正整数. 解集不能包含重复的组合. 示例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8, 所求解集为: [ [1, 7], [1, 2, 5], [2, 6],

[LeetCode] Combination Sum 组合之和

Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may be chosen from C unlimited number of times. Note: All numbers (including target) will

leetcode 216. 组合总和 III

找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有1 - 9的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字都是正整数. 解集不能包含重复的组合. 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]] 思路:和上一题的思路一样, 只是加了一个条件, 长度要是规定的长度 1 class Solution { 2 public: 3 void dfs

leetcode 三数之和

题目: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. 题目分析: 利用循环,使得三数之和为0.分别令i,l,r为三个数,i作为外循环,遍历数组.主要难点在于不重复 参考:https://leetcode.com/problems/3sum/discuss/147561/Python-tm 代码(python): 原文地址:https://ww

LeetCode——两数之和

最近在家拧三阶魔方,把初级的玩法掌握了,也就是可以还原六个面了,速度不快,但是也很兴奋.三阶魔方的初级玩法按照套路拧就可以了,每一步需要完成的任务,该步骤转动的方法基本都是固定的,而且变化也并不是特别多.只要按照套路多练习,不考虑速度的情况下还原一个三阶魔方还是很容易的. 编程入门和还原魔方其实差不多,最初也是掌握套路后反复的练习,先从一个生手变成一个熟手,然后再去提高.分享一个段子,在知乎上看到的,如下: 陈康肃公尧咨善射,当世无双,公亦以此自矜.尝射于家圃,有卖油翁释担而立,睨之,久而不去.