首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:组合和四

#yyds干货盘点# LeetCode程序员面试金典:组合和四

时间:2023-08-17 23:01:06浏览次数:49  
标签:yyds target 组合 nums int 金典 示例 LeetCode dp

1.简述:

给你一个由 不同 整数组成的数组 ,和一个目标整数 。请你从 中找出并返回总和为 的元素组合的个数。numstargetnumstarget

题目数据保证答案符合 32 位整数范围。

 

示例 1:

输入:nums = [1,2,3], target = 4
输出:7
解释:
所有可能的组合为:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
请注意,顺序不同的序列被视作不同的组合。

示例 2:

输入:nums = [9], target = 3
输出:0

2.代码实现:


class Solution {
    public int combinationSum4(int[] nums, int target) {
        int[] dp = new int[target + 1];
        dp[0] = 1;
        for (int i = 1; i <= target; i++) {
            for (int num : nums) {
                if (num <= i) {
                    dp[i] += dp[i - num];
                }
            }
        }
        return dp[target];
    }
}

标签:yyds,target,组合,nums,int,金典,示例,LeetCode,dp
From: https://blog.51cto.com/u_15488507/7128429

相关文章

  • 【leetcode】1.two sum
    第一题给我干懵了...想达到这个要求把我脑壳都想痛了...Follow-up:CanyoucomeupwithanalgorithmthatislessthanO(n2)timecomplexity?一开始想过用map,但是不能解决重复key的问题。然而我用sort,这个时间复杂度也不好确定。假装我只用了O(n)!(搓手手)(溜走)xxxclassSol......
  • LeetCode 1035.不相交的线
    1.题目:在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i]==nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只......
  • LeetCode 718.最长重复子数组
    1.题目:给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例1:输入:nums1=[1,2,3,2,1],nums2=[3,2,1,4,7]输出:3解释:长度最长的公共子数组是[3,2,1]。示例2:输入:nums1=[0,0,0,0,0],nums2=[0,0,0,0,0]输出:52.代码:classSo......
  • LeetCode 1143.最长公共子序列
    1.题目:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"......
  • #yyds干货盘点#FastDFS配置Nginx访问
    下载相关依赖软件包yum-yinstallwgetmakezlibzlib-develgcc-c++libtoolopensslopenssl-develwgethttp://nginx.org/download/nginx-1.10.2.tar.gztar-xzvfnginx-1.10.2.tar.gz安装Nginxcdnginx-1.10.2./configure--prefix=/data/apps/nginx-download\--p......
  • Leetcode 19. 删除链表的倒数第N个结点(Remove nth node from end of list)
    题目链接给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点.示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=1001<=n<=sz思路暴力解法:可以先......
  • LeetCode 674.最长连续递增序列
    1.题目:给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r(l<r)确定,如果对于每个 l<=i<r,都有 nums[i]<nums[i+1] ,那么子序列 [nums[l],nums[l+1],...,nums[r-1],nums[r]] 就是连续递增......
  • LeetCode 300.最长递增子序列
    1.题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2......
  • LeetCode 714.买卖股票的最佳时机含手续费
    1.题目:给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格;整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易......
  • 第 358 场周赛 - 力扣(LeetCode)
    第358场周赛-力扣(LeetCode)2815.数组中的最大数对和-力扣(LeetCode)双for遍历即可classSolution{public:intmaxSum(vector<int>&nums){autore=[](intx){intma=0;while(x){if(x%10>ma)......