【算法日志】动态规划刷题:完全背包应用问题(day39)

news2024/9/25 19:20:01

代码随想录刷题60Day


目录

前言

零钱兑换

 完全平方数


前言

今天重点是对完全背包问题进一步了解,难度不大,重点是区分与其他背包问题在初始和遍历上的一些细节。


零钱兑换

int coinChange(vector<int>& coins, int amount) 
	{
		if (!amount)return 0;
		const int size = coins.size();
		vector<int> dp(amount + 1, 0);
		sort(coins.begin(), coins.end());
		if (amount < coins[0])return -1;
		for (int i = 1; i <= amount; ++i)
		{
			for (int j = size - 1; j >= 0; --j)
			{
				if (i >= coins[j] && (!(i - coins[j]) || dp[i - coins[j]]))
				{
					if (dp[i])
						dp[i] = min(dp[i], dp[i - coins[j]] + 1);
					else
						dp[i] = dp[i - coins[j]] + 1;
				} 
			}
		}
		if (dp[amount])return dp[amount];
		return -1;
	}

 完全平方数

	int numSquares(int n) 
	{
		vector<int> dp(n + 1, 0);
		for (int i = 1; i <= n; ++i)
		{
			for (int j = 1; j * j <= i; j++)
			{
				if (dp[i])
					dp[i] = min(dp[i], dp[i - j * j] + 1);
				else
					dp[i] = dp[i - j * j] + 1;
			}
		}
		return dp[n];
	}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用敏捷开发工具实现敏捷项目管理的实践经验分享

Scrum中非常强调公开、透明、直接有效的沟通&#xff0c;这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求&#xff0c;故事&#xff0c;任务之间的流转状态&#xff0c;可以使团队成员更加快速适应敏捷开发流程。 …

Android scrollTo、scrollBy、以及scroller详解 自定义ViewPager

Scroller VelocityTracker VelocityTracker 是一个速度跟踪器&#xff0c;通过用户操作时&#xff08;通常在 View 的 onTouchEvent 方法中&#xff09;传进去一系列的 Event&#xff0c;该类就可以计算出用户手指滑动的速度&#xff0c;开发者可以方便地获取这些参数去做其他…

研磨设计模式day10中介者模式

目录 场景 思考 解决思路 模式讲解 调用示意图 中介者模式的优缺点 中介者模式的本质 何时选用 场景 如果没有主板&#xff0c;电脑各个配件怎么交互呢&#xff1f; 有些配件接口不同&#xff0c;必须把数据接口进行转换才能匹配上,无敌复杂。 有了主板之后就是下面这…

人工智能技术的主要类别

人工智能技术主要类别&#xff1a; 机器学习&#xff1a; 监督学习&#xff1a;使用带有标签的训练数据来训练模型&#xff0c;使其能够预测未知数据的标签。常见任务包括分类和回归。无监督学习&#xff1a;使用无标签的训练数据&#xff0c;模型通过发现数据中的模式、聚类或…

在idea上使用git的reset操作后,出现的四个选项Soft、Mixed、Hard、Keep选择说明

出现场景 选择已经commit的版本,点击Reset Current Branch to Here 然后便会出现下述四个选项 下面便对这个四个选项进行总结说明 原理 git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的 Soft Soft选项:在选择的回退点之后的所有更改将会保留并被gi…

预测下一波物联网网络安全挑战

本文讨论从孤立的物联网设置过渡到互连环境的复杂性&#xff0c;不断扩大的攻击面以及这种演变带来的微妙复杂性。 深入探讨标准化的紧迫性、级联故障的威胁以及利益相关者之间模糊的责任界限。 鉴于从孤立的物联网设备到互连的物联网环境的转变&#xff0c;这给网络安全带来…

研磨设计模式day12迭代器模式

目录 场景 解决方案 解决思路 代码示例 代码改造 Java实现迭代器 迭代器模式的优点 思考 何时选用 场景 大公司收购了一个小公司&#xff0c;大公司的工资系统采用List来记录工资列表&#xff0c;而小公司是采用数组&#xff0c;老板希望通过决策辅助系统来统一查看…

Axure RP

Axure RP 简介下载安装汉化注册 简介 Axure RP&#xff08;Rapid Prototyping&#xff09;是一款交互式原型设计工具&#xff0c;用于创建高保真的交互式界面原型和线框图。它主要用于用户体验&#xff08;UX&#xff09;和用户界面&#xff08;UI&#xff09;设计&#xff0c…

4.RabbitMQ高级特性 幂等 可靠消息 等等

一、如何保证生产者生产消息100%的投递成功 保障消息的成功发出保障MQ节点的成功接收发送端收到MQ节点&#xff08;Broker&#xff09;确认应答完善的消息进行补偿机制 1. 理解Confirm确认消息机制 消息的确认&#xff0c;是指生产者投递消息后&#xff0c;如果Broker收到消…

【C语言进阶(7)】内存函数 —— 使用方法 + 模拟实现

文章目录 前言Ⅰ 内存函数⒈memcpy⒉memmove⒊memcmp⒋memset Ⅱ 模拟实现⒈模拟实现 memcpy⒉模拟实现 memmove⒊模拟实现 memcmp⒋模拟实现 memset 前言 内存操作函数的优势 字符串函数只能操作字符串的内容&#xff0c;局限性很大。而内存函数可以操作任意类型的数据&…

Kali 安装浩劫(Havoc Command and Control Framework)

拉取 github 上的项目到本地进入 Havoc 目录 git clone https://github.com/HavocFramework/Havoc.git cd Havoc下载基于 Kali 的一系列软件 sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost…

改进YOLO系列:7.添加CA注意力机制

添加CA注意力机制 1. CA注意力机制论文2. CA注意力机制原理3. CA注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. CA注意力机制论文 论文题目:Coordinate Attention for Efficient Mobile Network Design 论文链接:Coordinate Attention for Effi…

400电话系统的数据分析和优化对企业的发展和增长有什么具体的好处?

对企业而言&#xff0c;通过400电话系统的数据分析和优化可以带来以下具体好处&#xff0c;促进企业的发展和增长&#xff1a; 优化客户满意度&#xff1a;通过数据分析和优化&#xff0c;企业可以更好地了解客户的需求和偏好&#xff0c;针对性地提供个性化的服务。这将提升客…

如何评估分类模型的好坏

如何评估分类模型的好坏 评估分类预测模型的质量&#xff0c;常用一个矩阵、三条曲线和六个指标。 一个矩阵&#xff1a;混淆矩阵&#xff1b;三条曲线&#xff1a;ROC曲线、PR曲线、KS曲线&#xff1b;六个指标&#xff1a;正确率Acc、查全率R、查准率P、F值、AUC、BEP值、KS…

「快学Docker」Docker容器安全性探析

「快学Docker」Docker容器安全性探析 引言容器安全性威胁Docker容器安全性目录容器镜像安全性主机与容器隔离访问控制运行时监控与防御网络安全性Docker容器安全性最佳实践 总结 引言 在当今快速发展的软件开发和部署领域&#xff0c;容器化技术已经成为一种不可或缺的工具。然…

Zotero文件同步方案:Zotero + Koofr + GooleDrive/OneDrive

Zotero文件同步方案&#xff1a;Zotero Koofr GooleDrive/OneDrive 背景知识ZoteroKoofrGoogleDrive/OneDrive配置步骤注意事项参考资料 觉得文章有收获&#xff0c;欢迎关注公众号鼓励一下作者呀~ 在学习的过程中&#xff0c;也搜集了一些量化、技术的视频及书籍资源&#x…

【业务功能篇83】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-应用层实战

五、ElasticSearch应用 1.ES 的Java API两种方式 Elasticsearch 的API 分为 REST Client API&#xff08;http请求形式&#xff09;以及 transportClient API两种。相比来说transportClient API效率更高&#xff0c;transportClient 是通过Elasticsearch内部RPC的形式进行请求…

Win11安装VMware中的镜像的下载

首先&#xff0c;下载好VMware之后需要许可证&#xff0c;在VMware选择许可证填上即可&#xff08;可以解决一部分VMware创建虚拟机过程中出现的问题&#xff09;。 百度网盘自取&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/17gBySqoPi2HeGJJlalp-VQ 提取码&…

学信息系统项目管理师第4版系列01_导读

2023年对于信息系统项目管理师&#xff08;以下简称“高项”&#xff09;的考生来说真是命运多舛的一年&#xff0c;上半年改大纲换教材&#xff0c;下半年改机考换考法&#xff0c;真是一言难尽啊。 不过&#xff0c;“天要下雨&#xff0c;娘要嫁人”&#xff0c;该考试拿证…

Linux:Nginx服务与搭建

目录 一、Nginx概述 二、Nginx三大作用&#xff1a;反向代理、负载均衡、动静分离 三、Nginx和Apache 3.1Nginx和Apache的差异 3.2Nginx和Apache的优缺点比较 四、编译安装niginx 五、创建Nginx 自启动文件 六、Nginx的信号使用 6.1信号 七、升级 nginx1.18 nginx1.2…