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;
    }
};
相关推荐
Hi李耶5 分钟前
【LeetCode】557.反转字符串中的单词 III
算法·leetcode·职场和发展
深蓝学院11 分钟前
机器人学习算法五大体系详解:模仿、强化、多模态、持续学习……
算法·机器人
2401_8582861132 分钟前
OS82.【Linux】设计线程池
java·linux·运维·服务器·开发语言·算法·线程池
Epiphany.5561 小时前
找到所有好字符串(记忆化搜索+KMP)(里面含KMP模板,用来入门)
算法
坚持编程的菜鸟1 小时前
模拟实现strncpy
c语言·算法·模拟实现strncpy
深圳市快瞳科技有限公司3 小时前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
wangwangmoon_light3 小时前
1.1 灵神题单总结_滑动窗口与双指针
leetcode
liulilittle3 小时前
归一化:激活函数
人工智能·算法·机器学习·llm
Mem0rin5 小时前
前缀和:一维与二维
数据结构·算法
小趴蔡ha5 小时前
12 K-Means 聚类入门:没有标签如何发现数据分组
算法·kmeans·聚类