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;
    }
};
相关推荐
阿Y加油吧3 分钟前
力扣滑动窗口两大压轴题:最小覆盖子串 + 滑动窗口最大值(保姆级思路 + 代码详解)
算法·leetcode·职场和发展
北顾笙98013 分钟前
day11-数据结构力扣
数据结构·算法·leetcode
月落归舟23 分钟前
Lambda + Arrays---小练习
数据结构·算法
2601_9553544626 分钟前
seo臻系统和百度seo有什么区别
算法
君义_noip31 分钟前
信息学奥赛一本通 1487:【例 2】北极通讯网络
算法·图论·信息学奥赛·csp-s
会编程的土豆1 小时前
【leetcode hot 100】二叉树二叉树
数据结构·算法·leetcode
XiYang-DING1 小时前
【LeetCode】203. 移除链表元素(Remove Linked List Elements)
算法·leetcode·链表
墨神谕1 小时前
希尔排序详解
数据结构·算法·排序算法
胡楚昊1 小时前
Polar PWN (4)
linux·运维·算法
圣保罗的大教堂1 小时前
leetcode 2751. 机器人碰撞 困难
leetcode