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;
    }
};
相关推荐
Navigator_Z1 小时前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
卡卡~~1 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
企业数字化笔记2 小时前
AI视频增强后画质怎么验收?插值基线、伪细节与帧间闪烁的检查方法
人工智能·算法·音视频
学逆向的2 小时前
C 内存属性
c语言·开发语言·算法·网络安全
lengxuenong3 小时前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
ComputerInBook3 小时前
泛函分析概观
人工智能·算法·机器学习·泛函分析
Nuanyt3 小时前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
q27551300423 小时前
AS8132 DP转HDMI 4K60(420)被动式 国产性价比AS方案
linux·算法·硬件架构·dash
安全指北针3 小时前
密态计算:数据 “可用不可见” 的底层技术解析
人工智能·算法