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

思路

有两个操作,全部将左边的刷成一个值,或者将右边的全部刷成一个值,得到的启发是一定需要从两端进行操作,可以模拟一下例子2:

c 复制代码
"010101" -> "110101" 操作1次 -> "110100" 操作1次 -> "000100" 操作2次
最后变为"111111" 操作5次
总计9次

也就是我们每一次都比较左右两端哪一个操作次数少,那么我们就操作他,全部刷为一个值,最后全部判断一遍就得到了最后的结果。

python 复制代码
class Solution:
    def minimumCost(self, s: str) -> int:
        n = len(s)
        i = 0
        j = n - 1
        res = 0
        while i < j:
            while i < j and s[i] == s[i + 1]:
                i += 1
            if i >= j: break
            while i < j and s[j] == s[j - 1]:
                j -= 1
            if i + 1 < n - j:
                res += i + 1
                i += 1
            else:
                res += n - j
                j -= 1
        return res
相关推荐
ZTLJQ2 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
2401_891482173 小时前
多平台UI框架C++开发
开发语言·c++·算法
H5css�海秀3 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
阿贵---3 小时前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
88号技师3 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751283 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
无敌昊哥战神3 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
x_xbx4 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor4 小时前
三分算法的简单应用
c++·算法·三分法·三分算法
2401_831920744 小时前
分布式系统安全通信
开发语言·c++·算法