这两题其实很相似,即第377题去重之后就成了518的答案。查看二者的代码也是及其相似,几乎就是内外循环调换过来了:

这种小而精的问题值得好好琢磨总结。

//leetcode377
public int combinationSum4(int[] coins, int amount) {int[]dp=new int[amount+1];dp[0]=1;Arrays.sort(coins);for(int x=1;x<=amount;x++){for(int coin:coins){if(x<coin])break;dp[x]+=dp[x-coin];}}return dp[amount];}
//leetcode518
public int change(int amount, int[] coins) {int[] dp = new int[amount + 1];dp[0] = 1;for (int coin : coins) {for (int x = coin; x <= amount; ++x) {dp[x] += dp[x - coin];}}return dp[amount];}

更新:背包问题参见博客https://blog.csdn.net/yandaoqiusheng/article/details/84782655

里面提供了背包九讲的文档,实在不可多得啊。希望大家乐于分享,少走弯路吧,也为找工作积累人品哈哈哈

leetcode377与leetcode518相关推荐

  1. 算法训练Day44 动态规划专题- 背包问题 | 完全背包基础知识;LeetCode518. 零钱兑换(装满背包有多少种方法,组合数);377.组合总和IV(装满背包有多少种方法,排列数)

    前言: 算法训练系列是做<代码随想录>一刷,个人的学习笔记和详细的解题思路,总共会有60篇博客来记录,计划用60天的时间刷完.  内容包括了面试常见的10类题目,分别是:数组,链表,哈希表 ...

  2. leetcode-377:组合总和 Ⅳ

    leetcode-377:组合总和 Ⅳ 题目 解题 方法一:动态规划 题目 题目链接 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 ...

  3. leetcode377. 组合总和 Ⅳ

    一:题目 二:上码 1:动态规划 class Solution {public:/**思路:1.首先确定完全背包 因为我们可以重复加入2.动态规划5步走1>:确定dp数组以及下标的含义dp[i] ...

  4. leetcode518. 零钱兑换 II

    一:题目 二:上码 class Solution {public:/**思路:1.分析题意这个满足答案的结果有很多种,所以我们可以用动态规划去做,那么题意中我们可以知道的是我们是可以输入一种面值的时候 ...

  5. leetcode377组合总和 ⅣC++

    1.题目 https://leetcode-cn.com/problems/combination-sum-iv/ 2.题意 题解1:dp class Solution {public:int com ...

  6. LeetCode-518零钱兑换II-中等

    标题:518零钱兑换II-中等 题目 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额. 请你计算并返回可以凑成总金额的硬币组合数.如果任何硬币组合都无法凑出总 ...

  7. 00完全背包中等 LeetCode377. 组合总和 Ⅳ NC233 加起来和为目标值的组合(四)

    描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素组合的个数. 题目数据保证答案符合 32 位整数范围. 分 ...

  8. LeetCode-377组合总和IV-中等

    标题:377组合总和IV-中等 题目 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素组合的个数. 题目数据保证 ...

  9. Leetcode377(力扣377):组合总和

    class Solution {public:int combinationSum4(vector<int>& nums, int target) {vector<unsig ...

最新文章

  1. javascript中window.event事件用法详解
  2. 使用 css/less 动态更换主题色(换肤功能)
  3. C++string 类常用函数
  4. arch linux网络配置,关于archlinux网络的 配置
  5. 阿丽塔大脑是机器人哪_阿丽塔——和机器人结合的未来离我们有多远?
  6. pythonzip是迭代器_Python迭代器和zip
  7. 1095. 山脉数组中查找目标值(三分+二分)
  8. Mysql数据库加锁与解锁(转)
  9. LSGO软件技术团队2015~2016学年第十三周(1123~1129)总结
  10. 分布式SQL学习总结(1)——蚂蚁金服资深总监韩鸿源:像使用集中式数据库一样使用OceanBase分布式数据库
  11. python应用系列教程——python操作office办公软件(excel)
  12. [转] MongoDB shell 操作 (查询)
  13. 用python 代码写一个表白I love you
  14. 非越狱iPad实现外接键盘全APP五笔输入(IOS14已自带五笔)
  15. 056 CSRF跨站请求伪造
  16. 【抢头条】迄今最全的无刷电机工作及控制原理分享-绝对...!
  17. CNS服务器(配合百度直连)游戏修复专栏
  18. mac 时间机器 禁用_如何在Mac上禁用屏幕时间通知
  19. 深入剖析Spring Web源码(十九) - 整理的文档和日志的索引(第一版)
  20. 2014巴西世界杯小组赛赛程

热门文章

  1. 音乐播放器的实现(三)---进度条控制、播放、暂停、上(下)一曲、播放时间和总时间显示
  2. Vue造成内存泄露的一些问题
  3. LINUX下为ORACLE数据库设置大页--hugepage
  4. nodesj的addon模块配置使用报错处理
  5. 数学猜想验证步骤_数学猜想验证_数学教学中如何运用“猜想验证”
  6. NEGF程序计算态密度,电子密度,透射率
  7. 如何轻松把Word、pdf文档制作成翻页电子书,电子画册?
  8. python做数据库管理系统_PYTHON数据库管理
  9. matlab里pascal是什么意思_你知道动漫里“你的发型很危险”这个梗是什么意思么?...
  10. 大学小学期实践课程第六课:车辆动力学标定