第四十六天 | 279.完全平方数 139.单词拆分

题目:279.完全平方数

本题比较简单,几天没做背包但是这道题很快ac了

尝试解答:

        题目类型:给定一个背包容量,求装满背包的最少物品数,且每个物品可以放多次,完全背包

        1.dp[j]数组含义:装满容量为 j 的背包所需要的物品数为dp[j] 

        2.状态转移方程:dp[j] = min(dp[j], dp[j - i * i] + 1)

        3.初始化:dp[0] =  0(这个是通过测试集试出来的),0之外的位置初始化为最大值,防止将答案覆盖

        4.遍历顺序:必须先遍历背包,在物品的终止条件中会用到背包容量作为限制。如果先遍历物品,那不知道for在哪里终止。
        5.打印dp

class Solution {
public:int numSquares(int n) {vector<int> dp(n + 1, INT_MAX);      //0之外的位置初始化为最大值,防止将答案覆盖dp[0] = 0;for(int j = 0; j <= n; j++){     //先背包后物品for(int i = 1; i <= n && i * i <= j; i++){     //for循环的判断条件里要多一条平方数小于背包容量,防止访问越界dp[j] = min(dp[j], dp[j - i * i] + 1);    //统计方法数}}return dp[n];}
};

其实先遍历物品后遍历背包也可以,只不过要加上一个防止访问越界的判断条件if

题目:139.单词拆分

尝试:失败

这道题相当于是判断给定容量的背包能不能装满。背包总容量s.size()

这个背包的总容量为s.size(),如果到最后背包内所装物品的数量为s.size(),就返回true,否则返回false.

1.dp[j]含义:容量为j的背包所装物品的数目

2.动态转移方程:如果字典里有[i],dp[j] = dp[j - ] + 1;

3.初始化:dp[0] = 

4.遍历顺序:先后顺序没有影响,背包的顺序从小到大

正解:

本题应该是求排列数类型

1.dp数组含义:字符串的长度为 i,能否能装满

2.递推公式:截取[i , j]这一段的s,判断这个子串是否存在于字典中,先将数组字典转化为set,set中查询的函数为find()。if([i,j] && dp[i] == true) 则 dp[j] == true; else dp[j] == false

3.初始化:dp[0] = true,非零下标都为false

4.遍历顺序:求排列数,先遍历背包再物品

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, false);dp[0] = true;for(int j = 0; j <= s.size(); j++){      //先背包for(int i = 0; i <= j; i++){string word = s.substr(i, j - i);     //将s进行剪切赋值给str//substr(起始位置,截取的个数)if(wordSet.find(word) != wordSet.end() && dp[i] == true){dp[j] = true;}}}return dp[s.size()];}
};

[易错]:if的判断条件里应该是dp[i] == true,因为要判断的是i之前的字符串是否查询成功了,不要惯性思维写dp[j - i] == true。

[注意]:各种语法:比如转字典、字典查询、切割字符串等

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

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

相关文章

如何选择适合自己需求的扬州独立服务器方案?

在互联网时代&#xff0c;独立服务器是网络建设的重要组成部分。选择适合自己需求的扬州独立服务器方案至关重要。下面&#xff0c;我们将介绍如何选择合适的扬州独立服务器&#xff0c;并推荐莱卡云&#xff08;Lcayun&#xff09;服务器商。 明确需求 要明确自己的需求是什…

大型央企国企信创化与数字化转型规划实施方案(71页PPT)

方案介绍&#xff1a; 随着全球信息技术的迅猛发展&#xff0c;数字化转型已成为企业提升竞争力、实现可持续发展的必经之路。作为国家经济的重要支柱&#xff0c;大型央企国企在信创化与数字化转型方面承载着重要的责任和使命。本方案旨在通过系统性的规划和实施&#xff0c;…

rpc理解

rpc 远程过程调用 rpc与http的区别 1.性能高 2.使用复杂 3.可扩展性高 4 跨语言支持 5.可以使用服务发现&#xff0c;负载均衡&#xff0c;熔断降级 rpc远程调用&#xff0c;必须传输数据&#xff0c;需要序列化。 序列化有多种方式&#xff1a; jdk原生序列化&#xff0c…

Discourse 使用 DiscourseConnect 来进行用户数据同步

我们都知道 Discourse 的用户管理和设置都高度依赖电子邮件。 如果 Discourse 没有设置电子邮件 SMTP 的话&#xff0c;作为管理员是没有办法对用户邮箱进行修改并且通过验证的。 可以采取的办法是通过 Discourse 的 DiscourseConnect 来进行用户同步。 根据官方的说法&…

C++语法|虚函数与多态详细讲解(四)|哪些函数不能实现成虚函数和虚析构函数的理解

系列汇总讲解&#xff0c;请移步&#xff1a; C语法&#xff5c;虚函数与多态详细讲解系列&#xff08;包含多重继承内容&#xff09; 文章目录 哪些函数不能成为虚函数虚析构函数什么时候把基类的析构函数必须是线程虚函数 哪些函数不能成为虚函数 要回答这个问题&#xff0c…

如何取消公众号的在线客服绑定授权

1&#xff0c;功能设置 2&#xff0c;公众号设置 3&#xff0c;查看详情&#xff0c;取消

开发远程遥控情趣玩具软件,提供现成程序源码应具备哪些基础功能

以“东莞梦情智能”为参考&#xff0c;其提供的现成情趣玩具遥控软件程序源码&#xff0c;所具备哪些基础功能&#xff0c;看看它们如何让情趣玩具变得更加丰富多彩。 一、设备连接 设备连接是情趣玩具遥控软件的基础功能之一。“东莞梦情智能”的现成源码支持多种连接方式&am…

leetcode题目42

接雨水 困难 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1…

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中&#xff0c;text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT&#xff1a;TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…

开源VS闭源:谁更能推动AI技术的普及与发展?

一、引言 在人工智能&#xff08;AI&#xff09;技术的浪潮中&#xff0c;开源与闭源两种模式一直并存&#xff0c;并各自在推动AI技术普及与发展上发挥着重要作用。然而&#xff0c;关于哪种模式更能有效地推动AI技术的普及与发展&#xff0c;一直存在着激烈的讨论。本文将深…

Bitmap 的基本原理

Bitmap 是一种用于表示数据的高效方法&#xff0c;特别适合在需要表示大量布尔值&#xff08;true 或 false&#xff09;的情况下使用。它的原理是使用二进制位来表示每一个布尔值&#xff0c;节省了存储空间和操作时间。 Bitmap 的基本原理 想象一下&#xff0c;你有一个很长…

树莓派指令

1.常用指令 2.在终端窗口编辑文本文件 2.1nano编辑器 在文本里ctrlG就可以查看更多的快捷按键 2.2vi编辑器 进入默认为命令模式

Python2没有模板字符串用法吗?

Python2中也有模板字符串的使用方式&#xff0c;使用的是string.Template模块&#xff0c;可以通过构造一个Template对象来实现。不过在Python3中&#xff0c;模板字符串被引入为一种更加方便的语法&#xff0c;直接在字符串中使用大括号{}来表示占位符&#xff0c;可以更加简洁…

百川股份:大王蹲完,小王蹲

一根大阴线&#xff0c;正丹股份的十倍股传奇之旅即将落幕&#xff1f; 有股民表示&#xff1a;化工板块还有高手&#xff0c;大王倒了还有小王。 今天我们聊的正是化工板块被称为“正丹第二”的百川股份。 虽难比正丹的十倍涨幅&#xff0c;但百川也不简单&#xff0c;3个月…

视频号小店是怎么操作的?适用于所有人的操作玩法!

大家好&#xff0c;我是电商小V 视频号小店是怎么操作的呢&#xff1f;这是刚开始去做&#xff0c;或者是刚了解的小伙伴最疑惑的问题&#xff0c; 视频号小店是22年推出的&#xff0c;也是目前最火的一个创业型项目&#xff0c;也是吸引了不少的商家入驻&#xff0c;今天咱们就…

微服务架构的优势 与 不足

优势 微服务架构是一种将应用程序作为一套小服务的集合来开发和部署的方法&#xff0c;每个服务运行在其独立的进程中&#xff0c;并通常围绕业务能力组织。服务之间通过定义良好的API进行通信。微服务架构的优势包括&#xff1a; 1. 独立部署 每个微服务可以独立部署到生产…

自动化技术-图像识别

白屏检测:使用OpenCV来判断,首先通过pyautogui库获取屏幕截图,然后将其转成灰度图像,接着计算灰度图像的平均值,如果平均值大于阈值则为白屏 import cv2 import numpy as np import pyautogui# 获取屏幕截图 screenshot = pyautogui.screenshot() screenshot = np.array(s…

PLC远程调试

随着工业自动化的快速发展&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;已经成为现代工业生产线的核心控制设备。然而&#xff0c;传统的PLC调试方式往往受限于地理位置和物理连接&#xff0c;使得工程师在调试过程中面临诸多不便。在这个背景下&#xff0c;HiWoo …

OpenHarmony 实战开发——内核对象队列之算法详解

前言 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09; LiteOS-M 内核是面向 IoT 领域构建的轻量级物联网操作系统内核&#xff0c;具有小体积、低功耗、高性能的特点。在嵌入式领域的开发工作中&#xff0c;无论是自研还是移植系统&#xff0c;均绕不开…

Pytorch-07 完整训练测试过程

要在PyTorch中使用GPU进行数据集的加载、模型的训练和最后模型的测试&#xff0c;需要将数据集和模型都移动到GPU上&#xff0c;并确保在训练和测试过程中都在GPU上进行计算。以下是一个完整的示例代码&#xff0c;展示了如何在PyTorch中使用GPU进行端到端的训练和测试&#xf…