leetcode 2938.区分白球与黑球

leetcode 2938.区分白球与黑球(传送门)

**思路:**把1放右边,0放左边,只要把0全部放好那么1肯定也全部放好了。考虑将靠左的0放在靠左的位置,也就是第i个0要放到下标为i-1的位置,所以直接遍历并更新已就位的0的个数即可。

时间复杂度 O(n)

cpp 复制代码
class Solution {
public:
    long long minimumSteps(string s) {
        long long n=s.length(),sum=0,ct=0;
        for(int i=0;i<n;i++){
            if(s[i]=='0'){
                sum+=i-ct;
                ct++;
            }
        }
        return sum;
    }
};
相关推荐
小玮看世界7 分钟前
[Python]螺旋遍历 vs 最短路径:方向控制类算法的“同源异流”
开发语言·python·算法
月华路12 分钟前
《模型不玄学》第14章 标签、损失与样本权重
人工智能·算法·机器学习
黄金龙PLUS14 分钟前
SPARKLE置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
不会就选b14 分钟前
算法日常・每日刷题--<贪心>3
数据结构·算法·leetcode
学习星球17 分钟前
编辑距离——二维 DP 的“最小操作“艺术
c++·leetcode·java-consul
行者全栈架构师23 分钟前
WorkBuddy 实战:把一份 200 页年报变成可上台的投资分析 PPT
人工智能·算法·全栈
微三云生态系统架构师-彭丹37 分钟前
矩阵拼团系统设计:先付款先排队的订单排序与自动返本算法
线性代数·算法·矩阵
@MMiL1 小时前
基于Keil 的实时参数标定和值观测
算法
无限码力1 小时前
华为非AI方向笔试真题【工厂落点最小加权路程】
算法·华为·华为非ai方向笔试真题·华为笔试真题·华为最新笔试真题·华为笔试题库
residual_fan1 小时前
数据缺失填补算法之CUR-Estimator
算法·数据挖掘·数据分析