LeetCode 664. 奇怪的打印机(区间DP)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

有台奇怪的打印机有以下两个特殊要求:

  • 打印机每次只能打印由 同一个字符 组成的序列。
  • 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。

给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数

示例 1:
输入:s = "aaabbb"
输出:2
解释:首先打印 "aaa" 然后打印 "bbb"。示例 2:
输入:s = "aba"
输出:2
解释:首先打印 "aaa" 然后在第二个位置打印 "b" 覆盖掉原来的字符 'a'。提示:
1 <= s.length <= 100
s 由小写英文字母组成

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/strange-printer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • dp[i][j] 表示打印 区间 [i,j] 需要的最少次数
class Solution {
public:int strangePrinter(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(n, INT_MAX));for(int i = 0; i < n; ++i)dp[i][i] = 1; // 初始情况for(int j = 1; j < n; ++j){for(int i = j-1; i >= 0; --i){if(s[i] == s[j]) // 两端的字符一样dp[i][j] = dp[i][j-1]; // j 字符 可以 跟 i 一同打印else // 两端不一样,枚举区间的中间切分点{for(int k = i; k < j; ++k){dp[i][j] = min(dp[i][j], dp[i][k]+dp[k+1][j]);}}}}return dp[0][n-1];}
};

144 ms 9.2 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

程序闪退怎么运行_苹果应用程序崩溃闪退怎么办?如何解决苹果设备的软故障?...

你们在使用苹果设备的时候是不是经常遇到程序卡死&#xff0c;或者苹果设备假死的情况&#xff1f;如果您遇到程序崩溃闪退或报错的时候&#xff0c;请不要慌张&#xff0c;按照以下方法解决问题。苹果设备它是应用程序问题还是设备故障&#xff1f;首先&#xff0c;您必须弄清…

lxrun不是内部或外部命令_在Win10 安装 WSL的Linux子系统,解决cmd中执行lxrun时提示“不是内部或外部命令”...

Win10 安装Linux子系统原理就是安装一个&#xff08;Linux系统的&#xff09;应用程序。使用应用程序一般的使用Linux子系统&#xff0c;非常方便。第一步&#xff1a;启用开发者模式启用开发者模式&#xff0c;其实很简单&#xff0c;本人参考的是该文章&#xff1a;手把手教你…

LeetCode 1886. 判断矩阵经轮转后是否一致

文章目录1. 题目2. 解题1. 题目 给你两个大小为 n x n 的二进制矩阵 mat 和 target 。 现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 &#xff0c;如果能够使 mat 与 target 一致&#xff0c;返回 true &#xff1b; 否则&#xff0c;返回 false 。 示例 1&#xff1a; …

ggplot2中显示坐标轴_qplot()——ggplot2的快速绘图

先前写过几篇用ggplot2进行基本绘图的文章&#xff0c;但对于初学者&#xff0c;或只需绘制简单图形时&#xff0c;这些命令显得繁琐&#xff0c;这里介绍ggplot2中的快速绘图函数qplot(). 此函数相对能较快速便捷地绘制图形。往期文章&#xff1a;张光耀&#xff1a;ggplot2数…

LeetCode 879. 盈利计划(动态规划)

文章目录1. 题目2. 解题1. 题目 集团里有 n 名员工&#xff0c;他们可以完成各种各样的工作创造利润。 第 i 种工作会产生 profit[i] 的利润&#xff0c;它要求 group[i] 名成员共同参与。如果成员参与了其中一项工作&#xff0c;就不能参与另一项工作。 工作的任何至少产生…

python 数字、字符串与 time时间/日期 的转换

获取当前时间戳 >>> import time >>> num time.time() # 当前时间戳, 7位浮点 >>> type(num) <class float> >>> num 1623302086.1892786数字 转 时间 >>> t time.localtime(num) # 数字 转 时间 >>> type(t…

Convert Windows 32bit dirver to Windows 64bit

Pre-condition: 1.source code(vc6.0WDK based) Development environment: 2.VS2013 3.WDK 8/8.1 Steps: 1.Create a new project. File->New->Visual C->Windows Driver 2.Copy .c and .h source code to project 3.Modify project property xxx属性页->配置属性-…

小程序 模糊查询_[轻应用小程序]如何使用信息查询功能?

本文内容结构如下图一、查询功能是什么&#xff1f;有什么作用&#xff1f;对于企业&#xff0c;会有一些和自身业务相关的数据&#xff0c;需要给到客户提供“查询信息”或“查询缴费”服务。查询信息&#xff1a;学校、培训机构&#xff1a;查询成绩。人力招聘&#xff1a;面…

LeetCode 1887. 使数组元素相等的减少操作次数(map)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums &#xff0c;你的目标是令 nums 中的所有元素相等。完成一次减少操作需要遵照下面的几个步骤&#xff1a; 找出 nums 中的 最大 值。记这个值为 largest 并取其下标 i &#xff08;下标从 0 开始计数&#xff09;。如果…

mqtt协议详解_阿里云物联网平台使用心得(七)MQTT协议14个报文总览

大家好&#xff0c;物联网爱好小组成员超子&#xff0c;又和大家见面了&#xff0c;超子我能力有限&#xff0c;水平不高&#xff0c;有什么错误的地方&#xff0c;欢迎板砖。超子将参考《MQTT-3.1.1标准协议中文版》PDF手册&#xff0c;详解每个报文的格式&#xff0c;以及如何…

service启动activity_「 Android 10 四大组件 」系列—Service 的 quot; 启动流程 quot;

作者&#xff1a;DeepCoder核心源码关键类路径Service 的启动过程相对 Activity 的启动过程来说简单了很多&#xff0c;我们都知道怎么去创建和启动一个 Service&#xff0c; 那么你有没有从源码角度研究过 Service 启动后在系统层是如何运作的 &#xff1f;第一次看我文章的小…

天池 在线编程 输入流

文章目录1. 题目2. 解题1. 题目 描述 给出两个输入流 inputA 和 inputB(包含退格符), 如果两个输入流最后的结果相等&#xff0c;输出 YES&#xff0c;否则输出 NO。 输入字符只包括小写字母和<。 输入流长度不超过10000。示例 样例1 输入: inputA "abcde<<&q…

vim使用教程(全)-最好的编辑器 2015-04-09 18:26 40人阅读 评论(0) 收藏...

vim的学习曲线相当的大&#xff0c;所以&#xff0c;如果你一开始看到的是一大堆VIM的命令分类&#xff0c;你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》&#xff0c;我觉得这是给新手最好的VIM的升级教程了&#xff0c;没有列举所有的 vim的…

天池 在线编程 最大子树(自底向上)

文章目录1. 题目2. 解题1. 题目 描述 给你一棵二叉树&#xff0c;找二叉树中的一棵子树&#xff0c;他的所有节点之和最大。 返回这棵子树的根节点。 我会把你返回的节点作为最优子树的树根来打印。 数据保证有且仅有唯一的解。 示例 样例 1: 输入: {1,-5,2,0,3,-4,-5} 输出…

sql随机抽取数据50条_MySQL中随机抽样

2.9 随机抽样在审计或IT审计中&#xff0c;常常使用抽样&#xff0c;也就是对具有审计相关性的总体中低于百分之百的项目实施审计程序&#xff0c;使所有抽样单元都有被选取的机会&#xff0c;为注册会计师针对整个总体得出结论提供合理基础。简单来说&#xff0c;就是我们需要…

spring手动回滚事务_Spring总结---gt;03

什么是事务逻辑上的一组操作&#xff0c;组成这组操作的各个单元&#xff0c;要么全都成功&#xff0c;要么全都失败。事务的特性原子性&#xff1a;事务不可分割一致性&#xff1a;事务执行前后数据完整性保持一致隔离性&#xff1a;一个事务的执行不应该受到其他事务的干扰 持…

java-设计模式(结构型)-【代理模式】

1.代理模式(ProxyMode) 定义&#xff1a;外观模式是对类与类之间关系的描述&#xff0c;而代理模式是对原来的方法添加其他的操作。 代理有“网关”的含义&#xff0c;比如用户访问论坛&#xff0c;则要经过代理(网关)授权给你才能访问&#xff0c;即 游客和注册用户的权限不同…

mysql建表_128、mysql建表和简单sql

EMPLOYEES, 有四个字段&#xff0c;EMPLOYEE_ID:员工表(主键)、DEPT_ID:部门号、EMPLOYEE_NAME:员工姓名、EMPLOYEE_SALARY:员工工资。建表语句CREATE TABLE EMPLOYEES(EMPLOYEE_ID int not null primary key,DEPT_ID int,EMPLOYEE_NAME char(40),EMPLOYEE_SALARY double);检索…

LeetCode 1893. 检查是否区域内所有整数都被覆盖(差分)

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。 如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖&#xff0c;那么请你返回 true &a…

数据中台建设与应用_Gartner对于建设数据中台的建议

(文&#xff1a;Gartner高级研究总监 孙鑫)数据中台是中国本土诞生的一个名词&#xff0c;很多企业在“什么是数据中台”和“我要上XX中台”徘徊。其炒作程度跟当年的“大数据” 一词有的一拼&#xff0c;如果用Gartner的炒作周期图来看&#xff0c;数据中台目前已经逼近炒作的…