当前位置: 首页 > news >正文

力扣 -- 518. 零钱兑换 II(完全背包问题)

解题步骤:

参考代码:

未优化代码:

class Solution {
public:int change(int amount, vector<int>& coins) {int n=coins.size();//多开一行,多开一列vector<vector<int>> dp(n+1,vector<int>(amount+1));//初始化dp[0][0]=1,其它的dp[0][j]都为0,因为不存在,所以只有0种选法dp[0][0]=1;//不要把dp[0][j]剩下的值初始化成-1,曾经因初始化成-1而出错//第一列不需要初始化//填表for(int i=1;i<=n;i++){//记得从0开始for(int j=0;j<=amount;j++){dp[i][j]=dp[i-1][j];if(j>=coins[i-1]&&dp[i][j-coins[i-1]]!=0){dp[i][j]+=dp[i][j-coins[i-1]];}}}//返回值return dp[n][amount];}
};

优化后代码:


class Solution {
public:int change(int amount, vector<int>& coins) {int n=coins.size();vector<int> dp(amount+1);//初始化dp[0]=1;//填表for(int i=1;i<=n;i++){for(int j=coins[i-1];j<=amount;j++){if(dp[j-coins[i-1]]!=0){dp[j]+=dp[j-coins[i-1]];}}}//返回值return dp[amount];}
};

你学会了吗???

http://www.lryc.cn/news/182106.html

相关文章:

  • 一文搞懂UART通信协议
  • 【算法|动态规划No.7】leetcode300. 最长递增子序列
  • LeetCode 54 螺旋矩阵
  • OpenCV 概念、整体架构、各模块主要功能
  • 组合数与莫队——组合数前缀和
  • stm32之雨滴传感器使用记录
  • 华硕平板k013me176cx线刷方法
  • C#停车场管理系统
  • C++:stl:stack、queue、priority_queue介绍及模拟实现和容量适配器deque介绍
  • ​【Java】面向对象程序设计 课程笔记 面向对象基础
  • Hive【Hive(五)函数-高级聚合函数、炸裂函数】
  • zabbix(二)
  • 容器安全检测工具KubeHound使用
  • 机器学习笔记 - 基于强化学习的贪吃蛇玩游戏
  • C++_pen_类
  • MySQL 多表关联查询优化实践和原理解析
  • LeNet网络复现
  • Oracle 慢查询排查步骤
  • 互联网Java工程师面试题·MyBatis 篇·第二弹
  • Linux 下如何调试代码
  • 腾讯云服务器简介和使用流程
  • python 二分查找
  • 通过async方式在浏览器中调用web worker
  • FPGA project : TFT_LCD
  • 2023年-华为机试题库B卷(Python)【满分】
  • 创建GCP service账号并管理权限
  • 想要精通算法和SQL的成长之路 - 验证二叉树
  • ERROR 6400 --- [ main] com.zaxxer.hikari.pool.HikariPool : root - Exception
  • CART算法解密:从原理到Python实现
  • C++项目:【高并发内存池】