当前位置: 首页 > news >正文

LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

将字符串翻转到单调递增

  • 题目描述
    • 动态规划

题目描述

难度 - 中等
LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

如果一个二进制字符串,是以一些 0(可能没有 0)后面跟着一些 1(也可能没有 1)的形式组成的,那么该字符串是 单调递增 的。
给你一个二进制字符串 s,你可以将任何 0 翻转为 1 或者将 1 翻转为 0 。
返回使 s 单调递增的最小翻转次数。

示例 1:
输入:s = “00110”
输出:1
解释:翻转最后一位得到 00111.

示例 2:
输入:s = “010110”
输出:2
解释:翻转得到 011111,或者是 000111。

示例 3:
输入:s = “00011000”
输出:2
解释:翻转得到 00000000。

提示:
1 <= s.length <= 10^5
s[i] 为 ‘0’ 或 ‘1’

在这里插入图片描述

动态规划

单调递增的字符串满足以下性质:
1.首个字符是 0 或 1;
2.其余的每个字符,字符 0 前面的相邻字符一定是 0,字符 1 前面的相邻字符可以是 0 或 1。

我们用动态规划去解答这个题时,每个位置我们都要考虑,其变成0或者1,的情况,最后我们取改变最小的值,

当 1≤i<n 时,考虑下标 i 处的字符。如果下标 i 处的字符是 0,则只有当下标 i−1 处的字符是 0 时才符合单调递增;如果下标 i 处的字符是 1,则下标 i−1 处的字符是 0 或 1 都符合单调递增,此时为了将翻转次数最小化,应分别考虑下标 i−1 处的字符是 0 和 1 的情况下需要的翻转次数,取两者的最小值。

代码演示:

class Solution {public int minFlipsMonoIncr(String s) {int n = s.length();int dp0 = 0;int dp1 = 1;for(int i = 0; i < n;i++){char c = s.charAt(i);int newDp0 = dp0;int newDp1 = Math.min(dp0,dp1);if(c == '1'){newDp0++;}else{newDp1++;}dp0 = newDp0;dp1 = newDp1;}return Math.min(dp0,dp1);}}

相关文章:

LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

将字符串翻转到单调递增 题目描述动态规划 题目描述 难度 - 中等 LC926. 将字符串翻转到单调递增(JAVA - 动态规划) 如果一个二进制字符串&#xff0c;是以一些 0&#xff08;可能没有 0&#xff09;后面跟着一些 1&#xff08;也可能没有 1&#xff09;的形式组成的&#xff0…...

【高阶数据结构】哈希的应用 {位图;std::bitset;位图的应用;布隆过滤器;布隆过滤器的应用}

一、位图 1.1 位图概念 面试题 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。【腾讯】 遍历查找&#xff1a;内存中无法存放40亿个整数&#xff08;约占内存15-16G&#xff09;&#xff1b;时间复杂…...

金融生产存储亚健康治理:升级亚健康 3.0 ,应对万盘规模的挑战

随着集群规模的不断扩大&#xff0c;硬盘数量指数级上升&#xff0c;信创 CPU 和操作系统、硬盘多年老化、物理搬迁等多种复杂因素叠加&#xff0c;为企业的存储亚健康管理增加了新的挑战。 在亚健康 2.0 的基础上&#xff0c;星辰天合在 XSKY SDS V6.2 实现了亚健康 3.0&#…...

C语言自定义类型讲解:结构体,枚举,联合(2)

&#x1f435;本篇文章将会对位段、枚举和联合的相关知识进行讲解 1. 位段&#x1f4da; 1.1 什么是位段 位段的声明和结构体类似&#xff0c;但是有两点不同&#xff1a; 1.位段的成员必须是int&#xff0c;unsigned int&#xff0c;signed int (C99之后也可以是其他成员&am…...

AI编程助手 Amazon CodeWhisperer 全面解析与实践

目录 引言Amazon CodeWhisperer简介智能编程助手智能代码建议代码自动补全 提升代码质量代码质量提升安全性检测 支持多平台多语言 用户体验和系统兼容性用户体验文档和学习资源个性化体验系统兼容性 功能全面性和代码质量功能全面性代码生成质量和代码安全性 CodeWhisperer的代…...

利用EXCEL进行XXE攻击

利用EXCEL进行XXE攻击 原因 原因 Microsoft Office从2007版本引入了新的开放的XML文件格式&#xff0c;新的XML文件格式基于压缩的ZIP文件格式规范&#xff0c;由许多部分组成。 我们可以将其解压缩到特定的文件夹中来查看其包含的文件夹和文件&#xff0c;可以发现其中多数是…...

芯片验证就是一次旅行

如果你国庆希望去一个你不曾去过的城市旅行&#xff0c;比如“中国苏州”。对游客来说&#xff0c;它是个蛮大的城市&#xff0c;有许多景点可以游玩&#xff0c;还有许多事情可以做。但实际上&#xff0c;即使最豪也最清闲的游客也很难看苏州的所有方方面面。同样的道理也适用…...

Java深入理解线程的三大特性

目录 1 CPU缓存导致可见性问题2 线程切换导致原子性问题3 性能优化导致有序性问题4 JMM(Java Memory Model)5 volatile6 synchronized 1 CPU缓存导致可见性问题 线程的三大特性&#xff1a; 可见性&#xff1a;Visibility有序性&#xff1a;Ordering原子性&#xff1a;Atomic…...

2025快手校招面试真题汇总及其解答(二)

6. hashmap数据结构 HashMap 是一种散列表,它是一种根据键值对来存储数据的数据结构。HashMap 的特点是插入、查找和删除操作的时间复杂度都是 O(1),因此它是一种非常高效的数据结构。 HashMap 的工作原理是将键值对存储在一个数组中,每个键值对都由一个哈希函数来映射到数…...

PHP生成带中文的图片

imagettftext() 函数是 PHP 中的一个内置函数&#xff0c;用于使用 TrueType 字体将文本写入图像。 句法&#xff1a; 数组imagettftext&#xff08;资源$image&#xff0c;float $size&#xff0c;float $angle&#xff0c; int $x&#xff0c;int $y&#xff0c;…...

java框架-Dubbo

Dubbo整合Springboot BIO NIO Netty Dubbo 原理 在这里插入图片描述...

Vue+iview 组件中通过v-for循环动态生成form表单进行表单校验

在做项目时&#xff0c;需要根据需要动态添加或新增表单&#xff0c;同时还需要对表单做校验。详情如下图&#xff1a; 刚开始做表单验证的时候&#xff0c;对于这个动态的表单验证有点难搞&#xff0c;试了好几种方法都没有搞定。最后按照下面这种方法实现了&#xff0c;以此…...

sns.load_dataset(“iris“)报错原因探究+解决办法

问题描述 import seaborn as sns # 读取数据 iris sns.load_dataset("iris")在代码中使用了seaborn &#xff0c;并加载iris数据&#xff0c;结果产生了报错信息如下所示 问题分析 原因很简单&#xff0c;我们使用了sns.load_dataset("iris")来加载数据…...

python回文素数

这能有1和本身整除的整数叫素数&#xff1b;如一个素数从左向右和从右向左是相同的数&#xff0c;则该素数为回文素数。编程求出2-1000内的所有回文素数。 源代码&#xff1a; def sushu(n): for i in range(2,n//21): if n%i 0: return False r…...

纽扣电池16CRF1700.15,16CFR1700.20,ANSI C18.3M如何申请?

随着科技的发展&#xff0c;纽扣电池被广泛应用于小型电子产品&#xff0c;如计算器、电子手表、玩具、医疗设备等。由于其体积小&#xff0c;易于拆卸&#xff0c;也造成了儿童误吞的潜在风险。因此&#xff0c;对于纽扣电池的认证和包装&#xff0c;各国均有相应的规定。 在美…...

10.12广州见 | 第十六届智慧城市大会报名通道全面开启

第十六届中国智慧城市大会 将于10月12日至13日 在广州举办 智慧城市是数字中国、智慧社会的核心载体&#xff0c;是数字时代城市发展的高级形态。由中国服务贸易协会、中国测绘学会、中国遥感委员会主办的第十六届中国智慧城市大会&#xff0c;将以“数实融合开放创新智引未…...

2023-油猴(Tampermonkey)脚本推荐

2023-油猴&#xff08;Tampermonkey&#xff09;脚本推荐 知乎增强 链接 https://github.com/XIU2/UserScript https://greasyfork.org/zh-CN/scripts/419081 介绍 移除登录弹窗、屏蔽首页视频、默认收起回答、快捷收起回答/评论&#xff08;左键两侧&#xff09;、快捷回…...

某度sign参数逆向

文章目录 前文分析完整代码结尾 前文 本文章中所有内容仅供学习交流&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 分析 经过我们几次抓包&#xff0c;测试&#xf…...

【选型】JAVA生成PPT及选型

可以使用的框架&#xff08;类库&#xff09;&#xff1a;POI&#xff0c;OpenOffice/LibreOffice&#xff0c;Aspose.Slides&#xff0c;Java开源报表工具&#xff08;JasperReports,BIRT等&#xff09;。 具体如下: 方案优点缺点Apache POI- 开源免费- 可完全控制PPT生成- …...

LPA*算法图文详解

之前我们看过了A* 算法&#xff0c;知道了A* 算法的基本原理&#xff0c;但是A* 算法的缺陷也很明显&#xff1a;它是离线的路径规划算法&#xff0c;只能一次规划出路径&#xff0c;但是后面路径被改变的话就无法生效了。针对这个问题&#xff0c;人们研究出了D* 算法。D* 算法…...

Python偏函数partial的用法小结

functools.partial(func, /, *args, **keywords) 会返回一个新可调用对象&#xff0c;它把原函数 func 的部分位置参数和/或关键字参数“预先绑定”。 这样你就能得到一个“定制版”的函数&#xff0c;后续只需要补齐剩余参数即可调用。返回对象类型是 functools.partial 实例&…...

别再手动下载了!教你用Python+Schedule库打造个人YouTube视频自动下载工具

Python自动化神器&#xff1a;用Schedule库打造智能视频下载系统 每次手动下载YouTube视频不仅耗时耗力&#xff0c;还容易错过更新。作为Python开发者&#xff0c;我们完全可以用代码解放双手&#xff0c;打造一个全自动的视频下载系统。今天要分享的这套方案&#xff0c;结合…...

Java微服务在Istio中出现“偶发503 no healthy upstream”?7分钟定位Sidecar健康检查盲区与Liveness Probe冲突真相

第一章&#xff1a;Java微服务在Istio中偶发503问题的现象与影响在基于Istio构建的服务网格环境中&#xff0c;Java微服务&#xff08;尤其是采用Spring Cloud Kubernetes或原生Spring Boot Istio Sidecar部署模式&#xff09;频繁出现偶发性HTTP 503 Service Unavailable响应…...

Word文档自动更新日期技巧

设置Word文档自动显示当天日期打开Word文档后&#xff0c;可以通过插入日期字段实现每次打开时自动更新为当天日期。方法1&#xff1a;使用日期字段在Word文档中定位光标到需要显示日期的位置。点击菜单栏"插入"→"文本"→"日期和时间"。在弹出的…...

Android Studio中文界面汉化终极指南:5分钟打造舒适开发环境

Android Studio中文界面汉化终极指南&#xff1a;5分钟打造舒适开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为An…...

TMAH显影液全场景应用:离子交换树脂在制备-使用-回收中的pH控制策略

为什么显影液的pH值如此重要&#xff1f;在芯片制造的精密世界里&#xff0c;光刻工艺就像是在头发丝上雕刻电路图案。而显影液&#xff0c;就是这场"雕刻"中的关键刻刀。目前主流的正性光刻胶显影液以四甲基氢氧化铵&#xff08;TMAH&#xff09;为主要成分&#xf…...

万象视界灵坛惊艳效果展示:同一张宠物图在‘金毛犬’‘幼犬’‘户外玩耍’‘毛发蓬松’多维排序

万象视界灵坛惊艳效果展示&#xff1a;同一张宠物图在"金毛犬""幼犬""户外玩耍""毛发蓬松"多维排序 1. 效果展示开场 今天我要向大家展示万象视界灵坛这个神奇工具的实际效果。它就像一个视觉魔法师&#xff0c;能够深入理解图片中的…...

实战演练:基于快马平台,快速搭建一个软件密钥授权管理后台原型

实战演练&#xff1a;基于快马平台&#xff0c;快速搭建一个软件密钥授权管理后台原型 最近在开发一个软件授权管理系统时&#xff0c;发现很多项目都需要类似的密钥管理功能。正好用InsCode(快马)平台快速搭建了一个原型&#xff0c;以VMware16密钥管理为例&#xff0c;分享一…...

终极Windows驱动管家:DriverStore Explorer释放系统空间完全指南

终极Windows驱动管家&#xff1a;DriverStore Explorer释放系统空间完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 引言&#xff1a;被遗忘的驱动仓库 你是否曾疑惑为…...

Ansible Playbook在JumpServer中的高级用法:自动化运维效率提升技巧

Ansible Playbook在JumpServer中的高阶实战&#xff1a;效率倍增的自动化运维策略 开篇&#xff1a;当堡垒机遇上自动化运维 想象一下这样的场景&#xff1a;凌晨三点&#xff0c;服务器突然告警&#xff0c;传统运维需要手动登录每台机器检查状态&#xff0c;而熟练使用Ansibl…...