Leetcode 322. 零钱兑换

在这里插入图片描述

心路历程:

这道题和上一道完全平方数的和基本上一摸一样,甚至比上一道题还简单,基于dp的建模:
状态:当前的目标总金额
动作:选哪一个硬币
返回值:凑成该目标总金额的最少硬币个数

这道题如果硬币不能重复使用的话,那就是一个回溯问题,优化只能靠剪枝不能靠记忆化搜索了。因为动作选择完需要再append回去。

注意的点:

1、注意判断不能组成的情况并返回无穷
2、注意在返回时将无穷变为-1

解法:动态规划

class Solution:def coinChange(self, coins: List[int], amount: int) -> int:@cachedef dp(x):  # 组成x的最少硬币个数if x == 0: return 0if x < 0: return float('inf')# 候选动作集合nonlocal coins# 状态转移res = []for coin in coins:res.append(dp(x-coin) + 1)return min(res)ans = dp(amount)if ans == float('inf'): return -1else: return ans

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/586566.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建议有这些需求的企业部署SD-WAN!

SD-WAN技术在当今企业网络领域引领着一股新的风潮。其通过软件控制和管理广域网连接&#xff0c;为企业提供了更加灵活、智能和高效的网络解决方案。SD-WAN都具备广泛的适用性&#xff0c;特别适合以下几类企业场景&#xff1a; 分布式企业&#xff1a; 对于跨越多个地理位置的…

boost库搜索引擎

文章目录 0. 前言1. 搜索引擎原理2. 技术栈和项目环境3. 正排索引和倒排索引3.1 正排索引3.2 倒排索引3.3 模拟查找 4. 获取数据源5. 数据清洗5.1 保存路径5.2 解析文件提取标题提取内容构造url 5.4 保存内容 6. 建立索引6.1 建立正排索引6.2 建立倒排索引6.3 构建索引 7. 搜索…

阿里云优惠券领取方法、领券页面及使用教程

随着云计算技术的不断发展和普及&#xff0c;越来越多的企业和个人选择使用阿里云作为他们的云服务提供商。为了吸引更多的用户&#xff0c;阿里云提供了各种优惠券&#xff0c;让用户在购买云产品和服务时可以享受到优惠。本文将为大家详细介绍阿里云优惠券的领取方法、领券页…

鸿蒙OS元服务开发说明:【WebGL网页图形库开发接口】

一、场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理&#xff0c;比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式开发。 二、接口说明 表1 WebGL主要接口列表 鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术鸿蒙技术文档开发知识更…

递归遍历目录结构和树状展现

在D盘下创建文件夹“电影”&#xff0c;在文件夹“电影”下创建“华语”、“好莱坞”&#xff0c;在文件夹“华语”下创建文件“人民的名义.mp4”、“天安门传奇.mp4”、“程序员统治世界.mp4”&#xff0c;在文件夹“好莱坞”下创建文件“国王的演讲.mp4”、“速度与激情8.mp4…

web 技术中前端和后端交互过程

1、客户端服务器交互过程 客户端:上网过程中,负责浏览资源的电脑,叫客户端服务器:在因特网中,负责存放和对外提供资源的电脑叫服务器 服务器的本质: 就是一台电脑,只不过相比个人电脑它的性能高很多,个人电脑中可以通过安装浏览器的形式,访问服务器对外提供的各种资源。 个人…

基于springboot+vue+Mysql的某银行OA系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

ucloud配置虚拟网卡---centos7.9

一、手动配置 1、购买主机的时候选择centos7.9&#xff0c;关闭网络增强&#xff0c;开启虚拟网卡功能 查看下当前网卡信息和路由 2、购买虚拟网卡 绑定eip 将网卡绑定在主机上 将虚拟网卡绑定在主机上以后查看下此时的ip和路由 centos7.9将虚拟网卡绑定在主机上以后&…

YB4051系列设备是高度集成的 Li-lon 和 Li-Pol 线性充电器

概述&#xff1a; YB4051系列设备是高度集成的 Li-lon 和 Li-Pol 线性充电器&#xff0c;针对便携式应用的小容量电池。它是一个完整的恒流/恒压线性充电器。不需要外部感应电阻&#xff0c;由于内部 MOSFET 结构&#xff0c;不需要阻塞二极管。它可以提供高达300mA 的充电电流…

Docker部署Nexus Maven私服并且实现远程访问Nexus界面

目录 ⛳️推荐 1. Docker安装Nexus 2. 本地访问Nexus 3. Linux安装Cpolar 4. 配置Nexus界面公网地址 5. 远程访问 Nexus界面 6. 固定Nexus公网地址 7. 固定地址访问Nexus ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&am…

DFS算法(C/C++)(内含立例题)

DFS&#xff1a; DFS又称深度优先搜索&#xff0c;是一种图运算方法&#xff0c;它从第一个节点走起&#xff0c;一直往下走&#xff0c;一直走到不能继续再走&#xff0c;就返回上一个节点&#xff0c;继续搜索其他地方&#xff0c;直到找到目标节点为止。 DFS可以解决迷宫问…

Git基础(26):撤销历史commit提交

文章目录 前言撤销(已发布到仓库)活动1撤销修改(未commit) 前言 有时候项目发布时&#xff0c;之前开发的某功能不需要上线&#xff0c;需要将其屏蔽&#xff0c;如何快速将其屏蔽&#xff1f; 撤销(已发布到仓库)活动1 tips:执行commit的撤销前建议备份被撤销的内容 撤销活动…