每日一练

这题我主要用的思想是:动态规划

1.状态表示:以i位置为结尾的字符串是否可以用字典表示,然后就可以拆分成 j ~ i 为字典中的最后一个单词,此时 0 <= j <= i (1.有可能全部为字典的一个单词,2.有可能只有一个字母的单词),然后就可以化为以 j - 1位置结尾可以被字典表示 和 j ~ i为字典中的元素,二者都符合则以i位置可以被字典表示。

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

3.初始化: 防止j - 1越界,初始化dp[0] = true,然后j就只需要从1判断

4.填表顺序: 为了填写当前状态的时候,所需要的状态已经填写完成,从左到右

5.返回值: 以length - 1结尾的位置是否符合状态表示

6.细节问题: 1.hash表就可以当成字典使用,2.找到第一个能使dp[i] = true的时候就不要让j再往前找了。

public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> hashSet = new HashSet<>(wordDict);//用于搜索int n = s.length();boolean[] dp = new boolean[n + 1];dp[0] = true;//防止越界,但不影响后续s = " " + s;//下标对应[1] 对应 [1]  处理映射for (int i = 0; i < n; i++) {// >= 1 表示不需要判断占位符for (int j = i; j >= 1; j--) {//往前找一直找到 以j - 1结尾的能被字典所拼为止找不到直接返回false,不必判断j~iif (dp[j - 1] == true && hashSet.contains(s.substring(j, i + 1))){dp[i] = true;//只要找到一种符合条件即可 其他的无需判断break;}else {dp[i] = false;}}}return dp[n];}

上述代码else可以省略因为boolean的默认值是false,dp[j - 1] == true 可转换为 dp[j - 1],因为true == true 返回true,false == true  返回false。 

 

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

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

相关文章

光纤网络的星际旅行:SFP与QSFP光模块的技术演进

&#x1f389;光模块作为完成光电转换的光器件&#xff0c;在光通信网络中必不可少&#xff0c;常见的有千兆/万兆光模块、SFP/SFP/QSFP28光模块等&#xff0c;那你知道这些光模块都是如何分类的吗&#xff1f;另外还有哪些类型&#xff1f;接下来我会在本文详细介绍光模块是如…

平台工程在企业数字化转型中的战略价值

要建设成功、有弹性和面向未来的平台&#xff0c;需要做到这三点&#xff1a;了解需求、预测可能面临的挑战并制定经得起时间考验的解决方案。 了解需求是指理解利益相关者的要求和目标&#xff0c;无论他们是最终用户、开发人员还是平台生态系统中的其他相关方。这包括开展全面…

排序算法。

冒泡排序: 基本&#xff1a; private static void sort(int[] a){for (int i 0; i < a.length-1; i) {for (int j 0; j < a.length-i-1; j) {if (a[j]>a[j1]){swap(a,j,j1);}}}} private static void swap(int[] a,int i,int j){int tempa[i];a[i]a[j];a[j]temp;} …

MathType安装导致的Word粘贴操作出现运行时错误‘53’:文件未找到:MathPage.WLL

MathType安装导致的Word粘贴操作出现运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL 解决方案 1、确定自己电脑的位数&#xff1b; 2、右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c;然后找到MathPage.WLL &#xff0c;复制一份进行…

二级综合医院云HIS系统源码,B/S架构,采用JAVA编程,集成相关医保接口

二级医院云HIS系统源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能&#xff0c;还能与公卫…

TailwindCss在vue3项目中的使用

1 安装 tailwindcss和postcss npm install -D tailwindcsslatest postcsslatest autoprefixerlatest2 初始化配置文件 npx tailwindcss init -p3 在tailwind.config.js添加对vue文件的识别&#xff0c;其他配置可以在配置文档中查看详细参数设置 /** type {import(tailwindc…

【御控物联】Java JSON结构转换(3):对象To对象——多层属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…

【电控笔记6.2】拉式转换与转移函数

概要 laplace&#xff1a;单输入单输出&#xff0c;线性系统 laplace 传递函数 总结

Spring GA、PRE、SNAPSHOT 版本含义及区别

GA:General Availability: 正式发布的版本&#xff0c;推荐使用&#xff08;主要是稳定&#xff09;&#xff0c;与maven的releases类似&#xff1b; PRE: 预览版,内部测试版。主要是给开发人员和测试人员测试和找BUG用的&#xff0c;不建议使用&#xff1b; SNAPSHOT: 快照…

算法学习系列(四十九):最长上升子序列模型(一)

目录 引言一、最长上升子序列二、怪盗基德的滑翔翼三、登山四、合唱队形五、友好城市六、最大上升子序列和 引言 今天学习的是最长上升子序列模型&#xff0c;这种模型我觉得就是我之前说过的就是相当于记忆的过程&#xff0c;记住遇到这种题是用这种模型&#xff0c;下次遇见…

打开电脑底部导航栏的任务

from pywinauto import Application app Application("uia").connect(path"explorer") app["任务栏"].print_control_identifiers() task app["任务栏"].child_window(title"酷狗音乐", auto_id"D:\soft\kugou\KGMus…

Linux 使用C语言删除一个非空的目录

文章目录 一、简介二、代码演示 一、简介 Linux 下可以使用 rmdir 系统调用来删除一个目录&#xff0c;但是只能删除一个非空目录。 NAMErmdir - delete a directorySYNOPSIS#include <unistd.h>int rmdir(const char *pathname);DESCRIPTIONrmdir() deletes a directo…

comfyui使用错误解决

not found: IPAdapterApply 明明安装了还是报找不到节点。 使用这个版本&#xff1a;&#xff08;也许后期更新后&#xff0c;最新库也可以使用&#xff09; https://github.com/cubiq/ComfyUI_IPAdapter_plus/tree/6a411dcb2c6c3b91a3aac97adfb080a77ade7d38

Proxmox VE 实现批量增加多网络

前言 实现批量创建多网络&#xff0c;更改主机名称&#xff0c;hosts解析 初始化网卡&#xff0c;主机名称&#xff0c;hosts解析&#xff0c;重启网卡 我的主机六个网卡&#xff0c;使用的有四个网卡&#xff0c;以下一键创建和初始化主机名称我是以硬件的SN号最为主机的名…

企业管理者桌面监控软件怎么使用才是合情合理

桌面监控软件其实是一种通过监视和获取他人信息的手段。作为公司的管理者采用这种手段加强对公司的管理无可厚非&#xff0c;但是无论何人对桌面监控软件的应用都需要合情合理。 据悉&#xff0c;桌面监控软件常用于企业内网管理&#xff0c;主要是用在监督员工在上班时间内电脑…

Matlab调C/C++简单模板例子

如果你是需要快速搭建一个matlab调c/c环境&#xff0c;这篇文章可以参考 有了c代码&#xff0c;想在matlab里面调用&#xff0c;可以参考我这个模板 matlab调用代码&#xff1a; clear all close all clcinput1 1; input2 2;[output1,output2] mexfunction(input1,input2);…

普通人做抖音小店真的能赚钱吗?可以,但更取决于个人

大家好&#xff0c;我是电商花花。 现在做抖音小店的基本上都是一些新商家&#xff0c;对于我们众多零基础的朋友来说&#xff0c;是期待也是一份挑战。 抖音小店作为一个充满机会的新兴平台&#xff0c;许多人都欣喜的投入其中&#xff0c;期望能够借此来改变自己的命运&…

美团 - 运维开发 - 春招复盘(更新中)

美团运维开发复盘&#xff08;更新中&#xff09; 面试官很nice&#xff0c;感谢两位大佬&#xff0c;耐心回答了很多。 文章目录 美团运维开发复盘&#xff08;更新中&#xff09;待弄懂的面试题环境配置如何判断操作系统CPU&#xff0c;内存&#xff0c;IO&#xff0c;网络资…

西门子电动阀门

一、西门子电动调节阀 二、西门子电动调节蝶阀 1、阀门 2、执行器

网络通信论

1. MQ使用什么协议 MQ(消息队列)使用的协议多种多样,其中最常见和流行的包括AMQP(高级消息队列协议)、MQTT和STOMP。这些协议都是基于TCP/IP的消息传递协议,用于在分布式系统中实现消息的传递、存储和分发。 AMQP是一个应用层协议,为面向消息的中间件设计,客户端与消…