当前位置: 首页 > news >正文

LeetCode-2938. 区分黑球与白球【贪心 双指针 字符串】

LeetCode-2938. 区分黑球与白球【贪心 双指针 字符串】

  • 题目描述:
  • 解题思路一:贪心
  • 解题思路二:一次遍历统计'1'的个数,找'0'后累加左边的'1'的个数
  • 解题思路三:

题目描述:

桌子上有 n 个球,每个球的颜色不是黑色,就是白色。

给你一个长度为 n 、下标从 0 开始的二进制字符串 s,其中 1 和 0 分别代表黑色和白色的球。

在每一步中,你可以选择两个相邻的球并交换它们。

返回「将所有黑色球都移到右侧,所有白色球都移到左侧所需的 最小步数」。

示例 1:

输入:s = “101”
输出:1
解释:我们可以按以下方式将所有黑色球移到右侧:

  • 交换 s[0] 和 s[1],s = “011”。
    最开始,1 没有都在右侧,需要至少 1 步将其移到右侧。
    示例 2:

输入:s = “100”
输出:2
解释:我们可以按以下方式将所有黑色球移到右侧:

  • 交换 s[0] 和 s[1],s = “010”。
  • 交换 s[1] 和 s[2],s = “001”。
    可以证明所需的最小步数为 2 。
    示例 3:

输入:s = “0111”
输出:0
解释:所有黑色球都已经在右侧。

提示:

1 <= n == s.length <= 10^5
s[i] 不是 ‘0’,就是 ‘1’。

解题思路一:贪心

在这里插入图片描述

class Solution:def minimumSteps(self, s: str) -> int:ans = cnt1 = 0for c in s:if c == '1':cnt1 += 1else:ans += cnt1return ans

时间复杂度:O(n)
空间复杂度:O(1)

解题思路二:一次遍历统计’1’的个数,找’0’后累加左边的’1’的个数

想不到贪心怎么办?背吧。

class Solution:def minimumSteps(self, s):ans, sum = 0, 0for i in range(len(s)):if s[i] == '1':sum += 1else:ans += sumreturn ans

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:


时间复杂度:O(n)
空间复杂度:O(1)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

http://www.lryc.cn/news/365012.html

相关文章:

  • 深度神经网络——什么是扩散模型?
  • 有代码冗余的检查工具嘛
  • 3D培训大师:快速输出标准3D课件,打造沉浸式培训体验
  • Python接口自动化测试:Json 数据处理实战
  • Java概述 , Java环境安装 , 第一个Hello World
  • 查看Linux端口占用和开启端口命令
  • 24-unittest简介
  • Kotlin 中,扩展函数(Extension Functions)
  • 堪称2024最强的前端面试场景题,让419人成功拿到offer
  • 使用node将页面转为pdf?(puppeteer实现)
  • 龙迅#LT8711H支持TYPE-C/DP/EDP转HDMI功能应用,分辨率支持 1080p@60Hz,芯片内置固件!
  • WPF中Ignorable
  • 系统安全及应用11
  • vue中SKU实现
  • 闭眼推荐的,新手教师工具
  • charles抓包工具之---添加vConsole
  • Java多线程-初阶1
  • C++二级指针的指向与解引用
  • Pandas处理时间差的4种表达方式
  • C语言---指针part2
  • DNS域名
  • 19 - 查询结果的质量和占比(高频 SQL 50 题基础版)
  • 一次挖矿病毒的排查过程
  • 【JMeter接口测试工具】第二节.JMeter基本功能介绍(上)【入门篇】
  • ultralytics solutions快速解决方案,快速实现某些场景的图像解决方案
  • iphone突然黑屏?3种方法解决问题!
  • nn.GRU和nn.GRUCell区别
  • Coolmuster Android助手评测:简化Android到电脑的联系人传输
  • 【杂记-webshell恶意脚本木马】
  • 锻炼 精读笔记 01