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

海淀建设网站大连网站排名

海淀建设网站,大连网站排名,wordpress 站内搜索慢,iapp如何用网站做软件题目 2712. 使所有字符相等的最小成本 给你一个下标从 0 开始、长度为 n 的二进制字符串 s ,你可以对其执行两种操作: 选中一个下标 i 并且反转从下标 0 到下标 i(包括下标 0 和下标 i )的所有字符,成本为 i 1 。 …

题目

2712. 使所有字符相等的最小成本

给你一个下标从 0 开始、长度为 n 的二进制字符串 s ,你可以对其执行两种操作:

  • 选中一个下标 i 并且反转从下标 0 到下标 i(包括下标 0 和下标 i )的所有字符,成本为 i + 1

  • 选中一个下标 i 并且反转从下标 i 到下标 n - 1(包括下标 i 和下标 n - 1 )的所有字符,成本为 n - i

返回使字符串内所有字符 相等 需要的 最小成本

反转 字符意味着:如果原来的值是 '0' ,则反转后值变为 '1' ,反之亦然。

示例 1:

输入:s = "0011"
输出:2
解释:执行第二种操作,选中下标 i = 2 ,可以得到 s = "0000" ,成本为 2 。可以证明 2 是使所有字符相等的最小成本。

示例 2:

输入:s = "010101"
输出:9
解释:执行第一种操作,选中下标 i = 2 ,可以得到 s = "101101" ,成本为 3 。
执行第一种操作,选中下标 i = 1 ,可以得到 s = "011101" ,成本为 2 。
执行第一种操作,选中下标 i = 0 ,可以得到 s = "111101" ,成本为 1 。
执行第二种操作,选中下标 i = 4 ,可以得到 s = "111110" ,成本为 2 。
执行第二种操作,选中下标 i = 5 ,可以得到 s = "111111" ,成本为 1 。
使所有字符相等的总成本等于 9 。可以证明 9 是使所有字符相等的最小成本。 

提示:

  • 1 <= s.length == n <= 105

  • s[i]'0''1'

思路

第一步先读懂题目,说人话就是,每次可以选择一个位置,要么反转前半段,要么反转后半段,反转了多少个字符,成本就是多少,求使字符串内所有字符 相等 需要的 最小成本

一开始想到的是DP,分别定义2个前缀数组和2个后缀数组。2个前缀数组表示前缀全部反转0的最小成本和全部反转成1的最小成本,2个后缀数组表示后缀全部反转成1的最小成本和全部反转成1的最小成本。

不过有一种更简单的考虑方式:对于任意一个位置(0 <= i < n-1),如果这个位置跟后面一个相邻的字符不相等,那么这个位置肯定要作为断点,要么反转前半部分,要么反转后半部分,才能让这2个相邻的字符相等。另外的相邻位置,如果处于未反转部分,那么不会改变;如果处于反转部分,由于全部反转了,那么相邻的位置是否相等的关系也不会改变。所以,我们发现,如果i作为断点,会改变s[i]s[i+1]的相等关系,但是不会改变其他相邻位置的相等关系。这样,其实每一个相邻位置,都可以看作是独立的,我们要让整体都相等,那么每一个相邻的位置都必须相等,我们只要遍历每一个相邻的位置,如果相等不需要处理,如果不相等,挑选较小的一半就行反转即可。

有一个额外的注意点是,虽然s.length不大,但是最终的成本是多个半段和的累加,可能会超过int的范围,需要用long来做接收。

图解

代码

/*** 对于任意一个下标i,如果s[i] != s[i+1],那么有2种方案* 1、反转[0,i],花费成本 i+1* 2、反转[i+1,n-1],花费成本 n-i-1* 对上上述任意的选择,反转后,并不改变其他位置相邻字符是否相等:原来相等的,反转后还是相等;原来不相等的,反转后还是不相等* 所以,我们只要在上述2种方案选择代价小的,依次累加,使得任意位置的2个字符都相等即可*/
public long minimumCost(String s) {int ans = 0;int n = s.length();for (int i = 0; i < n - 1; i++) {if (s.charAt(i) == s.charAt(i + 1)) {continue;}ans += Integer.min(i+1, n-i-1);}return ans;
}
耗时


文章转载自:

http://WTdUp7OA.nqbkb.cn
http://pTt4OoQd.nqbkb.cn
http://o8dZ9Yaw.nqbkb.cn
http://rCyNAqNR.nqbkb.cn
http://0VfcwC0M.nqbkb.cn
http://zWjAEzOo.nqbkb.cn
http://flNFCXYO.nqbkb.cn
http://TMB3COKc.nqbkb.cn
http://SqDbCCqu.nqbkb.cn
http://3caW8qVA.nqbkb.cn
http://nxBd16kH.nqbkb.cn
http://iYdDH0w7.nqbkb.cn
http://X09l0JBf.nqbkb.cn
http://gkmudSku.nqbkb.cn
http://LcyVmKWE.nqbkb.cn
http://KQXTmpAM.nqbkb.cn
http://kZg0FZi4.nqbkb.cn
http://lYML7qES.nqbkb.cn
http://fM7aLsT4.nqbkb.cn
http://hUZHd6Oa.nqbkb.cn
http://hN4mtT8w.nqbkb.cn
http://MBTk1HQO.nqbkb.cn
http://4koK6PhF.nqbkb.cn
http://7La88Zc7.nqbkb.cn
http://IKTAMPz9.nqbkb.cn
http://5TM3jvBY.nqbkb.cn
http://HNE3tZwW.nqbkb.cn
http://a3AwDKU3.nqbkb.cn
http://VAJN0mg6.nqbkb.cn
http://C7HMSErA.nqbkb.cn
http://www.dtcms.com/wzjs/632567.html

相关文章:

  • 怎么搭建自己的网站西双版纳傣族自治州地图高清版
  • 长沙中小企业网站制作网页微信登录入口
  • 阿里巴巴国际站可以做网站吗网站后台密码在哪个文件
  • 成都便宜网站建设公司哪家好wordpress上传完了
  • 免费下载app软件下载安装关键词优化快排
  • 网站备案管理系统登录不上去wordpress 插件分类
  • 服务器网站慢的原因平面设计网址推荐
  • 求个没封的a站2022找建网站公司
  • 咸阳市网站建设扬州网站开发公司电话
  • 简述网站的制作流程电商销售主要做什么
  • 网站开发远程服务器如何设置自己搭建服务器违法吗
  • 学做网站论坛vip账号破解将网站加入小程序
  • wordpress genesis百度seo网站优化
  • 龙华网站建设设计公司主机公园安装wordpress要多久
  • 黄永玉的艺术人生南阳网站优化费用
  • 教育公司网站建设方案wordpress论坛主题模板
  • 成都网站seo排名js特效网站欣赏
  • 精品网站设计蚌埠网站建设专业的公司
  • 天津百度搜索网站排名住建网官网
  • 百度自助网站建设赶集门户网站建设方案
  • 东莞网页模板建站已有网站开发安卓app
  • 英文网站建设怎么样赣州创可通科技有限公司
  • 天津百度推广排名个人做网站seo
  • 游戏网站服务器租用wordpress 产品展示主题
  • 观山湖网站建设网站ico在后台哪里找到
  • 电商网站建设需求分析引言做商城网站产品怎么分布
  • 做的比较好的法律实务培训网站太原网站制作好吗
  • 网站傻瓜式建设e龙岩官网下载电脑版
  • 邯郸做移动网站找谁营销策划方案的目的
  • 做网站的公司好坑啊torrent种子搜索引擎