LeetCode 279完全平方数 139单词拆分 卡码网 56携带矿石资源(多重背包) | 代码随想录25期训练营day45

news2024/11/17 1:30:02

动态规划算法6

LeetCode 279 完全平方数 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
int numSquares(int n) {
    //1确定dp数组,其下标表示j的完全平方数的最少数量
    //3初始化,将dp[0]初始化为0,用于计算,其他值设为INT_MAX用于递推公式求最小
    vector<int> dp(n+1,INT_MAX);
    dp[0] = 0;
    //2确定递推公式,背包j值的最小完全平方数数量=min(背包值j-i*i的最小完全平方数量+1, 之前遍历的dp[j])
    //因为是求具体值,而非排列数或组合数,所以先遍历背包或者物品均可
    for (int i = 1; i <= sqrt(n); i++)
    {
        for(int j = i*i; j <= n; j++)
        {
            //背包j值的最小完全平方数数量=min(背包值j-i*i的最小完全平方数量+1, 之前遍历的dp[j])
            dp[j] = min(dp[j-i*i]+1, dp[j]);
        }
    }
    return dp[n];
}

LeetCode 139 单词拆分 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
bool wordBreak(string s, vector<string>& wordDict) {
    //用于搜索函数搜索某一子串,string类型没有find()函数,与循环体中注释语句配合使用
    //unordered_set<string> wordSet(wordDict.begin(), wordDict.end());
    //1确定dp数组及下标含义,dp[i]表示(0,i)子字符串能否被拼接出
    //3初始化,dp[0]不能为false,否则后续都为false;其他值默认false
    vector<bool> dp(s.size()+1, false);
    dp[0] = true;
    string cur;
    //2确定递推公式,4确定遍历顺序
    //dp[i]表示(0,i)子字符串能否被拼接出,当(j,i)子字符串在字典中且(0,j)子字符串能被拼接出时dp[i]为true
    //该题为完全背包问题,且具有排列顺序,所以先遍历背包后遍历物品
    for (int i = 1; i <= s.size(); i++)
    {
        for(int j = 0; j <= i; j++)
        {
            //背包容量为i,判断(j,i)与(0,j)是否可拼接
            cur = s.substr(j, i-j);
            //if(wordSet.find(cur) != wordSet.end() && dp[j] == true)
            if(find(wordDict.begin(), wordDict.end(), cur) != wordDict.end() && dp[j] == true)
                dp[i] = true;
        }
    }
    return dp[s.size()];
}

卡码网 56 携带矿石资源(多重背包) 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
#include<bits/stdc++.h>
using namespace std;

int main()
{
    //背包容量,矿石种类
    int bagSize, sortSize;
    cin >> bagSize >>sortSize;
    //每种矿石的重量、价值、及数量
    vector<int> weight(sortSize, 0);
    vector<int> price(sortSize, 0);
    vector<int> num(sortSize, 0);
    for(int i = 0; i < sortSize; i++)
        cin >> weight[i];
    for(int i = 0; i < sortSize; i++)
        cin >> price[i]; 
    for(int i = 0; i < sortSize; i++)
        cin >> num[i];
    //1确定dp数组及下标含义,这里表示容量为i的背包能装矿石的最大价值
    //3初始化,所有背包在没放物品时默认价值为0
    vector<int> dp(bagSize+1, 0);
    //2确定递推公式,4确定遍历顺序
    //递推公式中,k表示第i中物品的个数,容量为j的背包最大价值=
    //max(上次遍历物品的j容量背包最大价值,j-k*weight[i]容量大小的背包的最大价值+k个i物品的价值)
    for(int i = 0; i < sortSize; i++)
    {
        for(int j = bagSize; j >= weight[i]; j--)
        {
            for(int k = 1; k <= num[i] && j >= k*weight[i]; k++)
            {
                dp[j] = max(dp[j-k*weight[i]] + k*price[i], dp[j]);
            }
        }
    }
    cout << dp[bagSize] << endl;
    return 0;
}

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

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

相关文章

Django系列之Celery异步框架+RabbitMQ使用

在Django项目中&#xff0c;如何集成使用Celery框架来完成一些异步任务以及定时任务呢&#xff1f; 1. 安装 pip install celery # celery框架 pip install django-celery-beat # celery定时任务使用 pip install django-celery-results # celery存储结果使用2. Django集成…

WebRTC AEC回声消除算法拆解

WebRTC AEC算法流程分析——时延估计&#xff08;一&#xff09; 其实&#xff0c;网上有很多类似资料&#xff0c;各个大厂研发不同应用场景设备的音频工程师基本都对其进行了拆解&#xff0c;有些闪烁其词&#xff0c;有些却很深奥&#xff0c;笔者随着对WebRTC了解的深入&a…

修改汽车的控制系统实现自动驾驶,基于一个开源的汽车驾驶辅助系统实现全自动驾驶

修改汽车的控制系统实现自动驾驶,基于一个开源的汽车驾驶辅助系统实现全自动驾驶。 自动驾驶汽车依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。 演示视频: Openpilot :一个开源的汽车驾…

2020年第九届数学建模国际赛小美赛C题亚马逊野火解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 C题 亚马逊野火 原题再现&#xff1a; 野火是指发生在乡村或荒野地区的可燃植被中的任何不受控制的火灾。这样的环境过程对人类生活有着重大的影响。因此&#xff0c;对这一现象进行建模&#xff0c;特别是对其空间发生和扩展进行建模&…

[算法基础 ~排序] Golang 实现

文章目录 排序什么是排序排序的分类1. 冒泡1.1 冒泡排序1.2. 快速排序 2. 选择2.1 简单选择排序2.2 堆排序 3. 插入3.1 直接插入3.2 折半插入3.3 希尔排序 4. 归并排序代码实现 5. 基数排序 排序图片就不贴了吧 排序 什么是排序 以下部分动图来自CSDN ::: tip 稳定性的概念 …

网络测试工具:tcping-测试端口连接

网络测试工具&#xff1a;tcping-测试端口连接 平常使用的ping&#xff0c;是通过icmp协议去测试网络连通性的&#xff0c;tcping是通过tcp三次握手测试端口的连通性。总的来说&#xff0c;ping测试的是L3的连通性&#xff0c;tcping测试的是L4的连通性。 tcping工具下载 htt…

Go语言学习:第1天

一、为什么开始学go语言 我自己是做测试的&#xff0c;所测试项目使用的是go语言。开始学习go语言的原因有两个&#xff1a;一方面&#xff0c;为了更好的做好工作&#xff1b; 另一方面&#xff0c;为了提高自己的核心竞争力。 二、第1天学习到的内容 2.1 Go是怎么解决包依…

打包less

接HTML和css之后对less进行打包 1.在之前的文件夹里的src文件夹创建一个less文件 2.打开webpack——>中文文档——>Loader——>less—loader 3.复制下图代码到终端 4.复制下图内容到webpack.config.js脚本 5.在src里的js文件年引入less文件 6.在终端运行 npm run te…

[原创]如何正确的部署R语言开发环境(含动图演示).

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

arm-linux设备fsck命令移植

arm-linux设备fsck命令移植 文章目录 **arm-linux设备fsck命令移植**1、下载e2fsprogs-源码2、解压3、进入源码目录4、配置编译环境&#xff1a;使用以下命令配置交叉编译环境5、测试 1、下载e2fsprogs-源码 首先要确定自己的文件系统格式&#xff0c;IG2000的文件系统是ext4&…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 4. 上传结果1&#xff09;…

【AI】ChatGLM3-6B上手体验

之前写过ChatGLM2-6B大语言模型的部署安装文档&#xff0c;现在ChatGLM模型已经更新迭代到第三代了&#xff0c;从官方公布的数据来看&#xff0c;模型的能力是得到了进一步的增强。 这次写文章主要是来记录一下使用过程&#xff0c;方便回头查看。 ChatGLM3-6B官方的视频教程…

VSCode中如何查看EDI报文?

VSCode是开发人员常用的一款软件&#xff0c;为了降低EDI报文的阅读门槛&#xff0c;知行的开发人员设计了EDI插件&#xff0c;可以在VSCode中下载使用。 如何打开一个EDI报文——VSCode EDI插件介绍 EDI插件下载流程 进入VSCode&#xff0c;打开Extensions&#xff0c;在搜索…

STM32-01-认识单片机

文章目录 一、单片机简介二、Cortex-M系列介绍三、初识STM32四、STM32原理图设计五、搭建开发环境六、STM32初体验七、MDK5使用技巧 一、单片机简介 单片机是什么&#xff1f; 单片机&#xff1a;Single-Chip Microcomputer&#xff0c;单片微型计算机&#xff0c;是一种集成电…

Keepalived+Nginx实现高可用(上)

一、背景与简介 为了服务的高可用性&#xff0c;避免单点故障问题&#xff0c;通常我们使用"冗余设计思想"进行架构设计。冗余设计思想&#xff0c;本质就是将同一个应用或者服务放置在多台不同的服务器上[鸡蛋不放在同一个篮子里]&#xff0c;这样减少整体服务宕机的…

2023 年山东省职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题

2023 年山东省职业院校技能大赛&#xff08;高等职业教育&#xff09; “信息安全管理与评估”样题 目录 任务 1 网络平台搭建&#xff08;50 分&#xff09; 任务 2 网络安全设备配置与防护&#xff08;250 分&#xff09; 模块二 网络安全事件响应、数字取证调查、应用程序安…

深入探索 Spring Boot:简化开发,加速部署的全方位利器

目录 导言 1. 自动配置&#xff08;Auto-Configuration&#xff09; 2. 起步依赖&#xff08;Starter Dependencies&#xff09; 3. 嵌入式 Web 服务器 4. Actuator 5. 外部化配置 6. 简化的安全性配置 7. Spring Boot CLI 8. Spring Boot DevTools 导言 在当今软件开…

散点图直方图折线图的替代

散点图直方图折线图的替代 seaborn官网 数据科学数据可视化&#xff0c;散点图 直方图 折线图的新方法 1.hexbinplot https://seaborn.pydata.org/examples/hexbin marginals.html相当于散点图做了聚合/分箱&#xff0c;使数据的分布展示更明显。Library: seaborn 2.瀑布图展示…

Pytorch-LSTM轴承故障一维信号分类(一)

目录 前言 1 数据集制作与加载 1.1 导入数据 第一步&#xff0c;导入十分类数据 第二步&#xff0c;读取MAT文件驱动端数据 第三步&#xff0c;制作数据集 第四步&#xff0c;制作训练集和标签 1.2 数据加载&#xff0c;训练数据、测试数据分组&#xff0c;数据分batch…

Qt Widgets 绘图行为逐步分析拆解

Qt 是目前C语言首选的框架库。之所以称为框架库而不单单是GUI库&#xff0c;是因为Qt提供了远远超过GUI的功能封装&#xff0c;即使不使用GUI的后台服务&#xff0c;也可以用Qt大大提高跨平台的能力。 仅就界面来说&#xff0c;Qt 保持各个平台绘图等效果的统一&#xff0c;并…