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

贪心算法-点灯问题

1、题目描述
给定一个字符串str,只由 ‘X’ 和 ‘.’ 两种字符构成。‘X’ 表示墙,不能放灯,点亮不点亮都可;’.’ 表示居民点,可以放灯,需要点亮。如果灯放在i位置,可以让 i-1,i 和 i+1 三个位置被点亮。返回如果点亮str中所有需要点亮的位置,至少需要几盏灯。

2、解题思路
这题我们可以用谈心思想 分情况来去讨论:
(1)i 位置是 'X’,不管,来到 i + 1位置
(2)i 位置是 ‘.’ ,i + 1是 'X’,i 位置需要放灯,来到 i + 2位置
(3)i 位置是 ‘.’ ,i + 1是 ‘.’,i + 2是 ‘.’,i + 1 位置需要放灯,来到 i + 3位置(此步即是贪心)
(4)i 位置是 ‘.’ ,i + 1是 ‘.’,i + 2是 'X’,i 或 i + 1 位置需要放灯,来到 i + 3位置

代码实现:

	public static int minLight2(String road) {char[] str = road.toCharArray();int i = 0;int light = 0;while (i < str.length) {if (str[i] == 'X') {i++;} else {light++;if (i + 1 == str.length) {break;} else { // 有i位置 i+ 1 X .if (str[i + 1] == 'X') {i = i + 2;} else {i = i + 3;}}}}return light;}
http://www.lryc.cn/news/178369.html

相关文章:

  • 软件测试之单元测试自动化入门基础
  • 93 # 实现 express 错误处理中间件
  • PHP 创建 MySQL 表
  • 中兴R5300 G4服务器iSAC管理员zteroot密码遗失的重置方法及IPV6地址启用设置
  • 大数据分布式处理框架Hadoop
  • echarts学习总结
  • 与初至波相关的常见误解
  • screenfull全屏、退出全屏、指定元素全屏的使用步骤
  • 问题 - 谷歌浏览器 network 看不到接口请求解决方案
  • Java:正则表达式的命名捕获组
  • ELK 处理 Spring Boot 日志
  • No152.精选前端面试题,享受每天的挑战和学习
  • Flutter:类功能索引(全)
  • 电脑技巧:笔记本电脑升级固态硬盘的注意事项,看完你就懂了
  • TLS/SSL(一)科普之加密、签名和SSL握手
  • UVA-1374 旋转游戏 题解答案代码 算法竞赛入门经典第二版
  • logback.xml springboot 项目通用logback配置,粘贴即用,按日期生成
  • 【AI视野·今日CV 计算机视觉论文速览 第256期】Thu, 28 Sep 2023
  • 2023-9-28 JZ26 树的子结构
  • ElementUI之首页导航+左侧菜单
  • 【Linux学习】04Linux实用操作
  • 一篇博客学会系列(1) —— C语言中所有字符串函数以及内存函数的使用和注意事项
  • 计算机视觉与深度学习-循环神经网络与注意力机制-RNN(Recurrent Neural Network)、LSTM-【北邮鲁鹏】
  • brew 安装MySQL 5.7
  • 【中国知名企业高管团队】系列22:滴滴
  • Unity之Hololens如何实现3D物体交互
  • IDEA Debug技巧大全,看完就能提升工作效率
  • 蓝桥等考Python组别六级003
  • 机器学习小白理解之一元线性回归
  • 目标检测:FROD: Robust Object Detection for Free