5473. 灯泡开关 IV

  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客

本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!


房间中有 n 个灯泡,编号从 0n-1 ,自左向右排成一行。最开始的时候,所有的灯泡都是 着的。

请你设法使得灯泡的开关状态和 target 描述的状态一致,其中 target[i] 等于 1i 个灯泡是开着的,等于 0 意味着第 i 个灯是关着的。

有一个开关可以用于翻转灯泡的状态,翻转操作定义如下:

  • 选择当前配置下的任意一个灯泡(下标为 i
  • 翻转下标从 in-1 的每个灯泡

翻转时,如果灯泡的状态为 0 就变为 1,为 1 就变为 0

返回达成 target 描述的状态所需的 最少 翻转次数。

示例 1:

输入:target = "10111"
输出:3
解释:初始配置 "00000".
从第 3 个灯泡(下标为 2)开始翻转 "00000" -> "00111"
从第 1 个灯泡(下标为 0)开始翻转 "00111" -> "11000"
从第 2 个灯泡(下标为 1)开始翻转 "11000" -> "10111"
至少需要翻转 3 次才能达成 target 描述的状态

示例 2:

输入:target = "101"
输出:3
解释:"000" -> "111" -> "100" -> "101".

示例 3:

输入:target = "00000"
输出:0

示例 4:

输入:target = "001011101"
输出:5

提示:

  • 1 <= target.length <= 10^5
  • target[i] == '0' 或者 target[i] == '1'

5473. 灯泡开关 IV 题解

由于只能一次转换i到n-1个位置灯的状态,所以最佳策略就是从0开始向后,如果状态不一样,则进行一次转化。

class Solution {public:int minFlips(string target) {int ans = 0;int len = target.length();char s[2] = {'0','1'};int flag = 0;for(int i = 0 ; i < len; i++){if(target[i] == s[flag])continue;else{ans++;flag = (flag+1)%2;}}return ans;}
};

C/C++描述 LeetCode周赛 5473. 灯泡开关 IV相关推荐

  1. leetcode 5473. 灯泡开关 IV (阿里云周赛)

    房间中有 n 个灯泡,编号从 0 到 n-1 ,自左向右排成一行.最开始的时候,所有的灯泡都是 关 着的. 请你设法使得灯泡的开关状态和 target 描述的状态一致,其中 target[i] 等于 ...

  2. leetcode 5473. 灯泡开关 IV(C++)

    房间中有 n 个灯泡,编号从 0 到 n-1 ,自左向右排成一行.最开始的时候,所有的灯泡都是 关 着的. 请你设法使得灯泡的开关状态和 target 描述的状态一致,其中 target[i] 等于  ...

  3. 【LeetCode Python实现】 5473. 灯泡开关 IV(中等)

    想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 文章目录 题目描述 示例 1: 示例 2: 示例 3: 示例 4: ...

  4. leetcode 5473. 灯泡开关 IV medium (智力题,O(n)思路详解)

    题目链接:https://leetcode-cn.com/problems/bulb-switcher-iv/ 解题思路 一开始真的在傻傻地反转字符串,果断超时. 后来终于摸索出规律: 连续的0可以视 ...

  5. 力扣199场比赛 5473. 灯泡开关 IV

    房间中有 n 个灯泡,编号从 0 到 n-1 ,自左向右排成一行.最开始的时候,所有的灯泡都是 关 着的. 请你设法使得灯泡的开关状态和 target 描述的状态一致,其中 target[i] 等于 ...

  6. C/C++描述 LeetCode 周赛 第199场周赛(阿里云专场)

    C/C++描述 LeetCode 周赛 第199场周赛(阿里云专场)   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN ...

  7. leetcode - 22 672. 灯泡开关 Ⅱ

    房间中有 n 只已经打开的灯泡,编号从 1 到 n .墙上挂着 4 个开关 . 这 4 个开关各自都具有不同的功能,其中: 开关 1 :反转当前所有灯的状态(即开变为关,关变为开) 开关 2 :反转编 ...

  8. leetcode,脑筋急转弯,灯泡开关问题

    题目 初始时有 n 个灯泡关闭. 第 1 轮,你打开所有的灯泡. 第 2 轮,每两个灯泡你关闭一次. 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭).第 i 轮,每 i 个灯泡切 ...

  9. C/C++描述 LeetCode 周赛 5472. 重新排列字符串

    5472. 重新排列字符串   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博 ...

最新文章

  1. STM32低功耗模式下GPIO如何配置最节能?
  2. 巴菲特评科技股:投资 IBM 是个错误,还会增持苹果,亚马逊简直是奇迹
  3. eclipse导入Java文件后出现中文乱码
  4. TEdit扩展:做成多按钮的Edit,可用作浏览器地址栏
  5. 介绍一个办法查TREX search的log
  6. 补肾分男女,养肾如养命
  7. 1109: 数根(函数专题)
  8. sklearn 常用api(一)
  9. 【已解决】Maven更改本地默认仓库时遇到的问题。 No implementation for org.apache.maven.model.path.PathTranslator was bound
  10. react native中使用 react-native-easy-toast 和react-native-htmlview
  11. Java 集合及底层源码分析,Java零基础入门pdf
  12. mybatis事务处理
  13. c语言编译bss和data,深入理解BSS段与data段的区别
  14. 一代盘神谢幕!百度网盘 Pandownload 开发者被抓了!
  15. excel排序求和:如何统计前几名数据合计 下篇
  16. win7我的计算机无法搜索,解决Win7系统搜索功能不能用的问题
  17. .NET 请求被挂起,前端轮询,委托
  18. 基于微信小程序的校园自助打印系统小程序
  19. 高级IDE工具:Elipse的使用
  20. 上网本安装linux_微软杀死了Linux上网本吗?

热门文章

  1. Android仿微信图片编辑库,你想要的功能这里都有
  2. Antv X6 画布平移
  3. 文件的下载(2)——解决下载文件名的乱码问题
  4. 微信小程序进行地图导航,地图展示功能
  5. opencv(人脸检测和识别)
  6. 记一次rc.local中python脚本无法运行的解决过程
  7. Aop介绍 ,aop使用 aop解释
  8. 三个或多个蛋白质结构的比对
  9. pcntl_alarm()的示例
  10. 如何使用sizeof获取指针指向数组的长度