文章目录

  • 题目
  • 思路
  • AC代码
  • 后记

题目

从房屋收集雨水需要的最少水桶数

思路

思路是贪心,因为我们需要从左向右找寻所有的水桶数,所以我们对于每一个房屋都优先判断右边是否能放水桶,右边不能放就看左边,两种情况的剩余情况输出-1。
对于计数有两种方法,第一个是将对应合适的雨点数换成字符B,最后统计字符的个数;还有一个就是直接计数。
计数二的代码真的好优美!

AC代码

计数一

class Solution {public:int minimumBuckets(string street) {int res=0,len=street.size();for(int i=0;street[i];++i){if(street[i]=='H'){if(i==0 || street[i-1]!='B'){//防止前面出现过Bif(i+1<len && street[i+1]=='.'){street[i+1]='B';}else{if(i==0 || street[i-1]=='H') return -1;else street[i-1]='B';}}}}for(int i=0;street[i];++i) res+=(street[i]=='B');return res;}
};

计数二,一看就懂。

class Solution {public:int minimumBuckets(string street) {int len=street.size();int res=0;for(int i=0;i<len;++i){if(street[i]=='H'){if(i+1<len && street[i+1]=='.'){++res;i+=2;}else if(i>=1&&street[i-1]=='.'){++res;}else{return -1;}                }}return res;}
};

后记

学到了一个技巧就是在处理数组类的问题的时候,如果可能有越界的情况可以将判断i放在前面,不影响最终的表达含义。
还有字符串类的题好像都是向右贪心呀!

力扣 双周赛补题 2086. 从房屋收集雨水需要的最少水桶数相关推荐

  1. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的字符串 street .street 中每个字符要么是表示房屋的 'H' ,要么是表示空位的 '.' . 你可以在 空位 放置水 ...

  2. LeetCode 2086. 从房屋收集雨水需要的最少水桶数 -- 动态规划

    从房屋收集雨水需要的最少水桶数 中等 26 相关企业 给你一个下标从 0 开始的字符串 street .street 中每个字符要么是表示房屋的 'H' ,要么是表示空位的 '.' . 你可以在 空位 ...

  3. leetcode5923.从房屋收集雨水需要的最少水桶数(中等,周赛)

    自己的思路:贪心 class Solution {public:int minimumBuckets(string street) {int n = street.size();int i = 0, ...

  4. C#实现力扣双周赛算法题:以组为单位订音乐会的门票订购

    目录: 前言: 一,算法题目描述 二,基本概念理解: 三,例子引入分析 四,代码解释 (1)安排座位函数 (2)查询函数 (2)求出1到RPS内的最小下标 (3)gather函数 (4)scatter ...

  5. Leetcode周赛复盘——第 71 场力扣双周赛与第 279 场力扣周赛

    双周赛: 5984. 拆分数位后四位数字的最小和 class Solution:def minimumSum(self, num: int) -> int:a, b, c, d = sorted ...

  6. NEUQ-acm第二次双周赛补题

    7-1 输出全排列 题目描述 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式 输入给出正整数n(<10). 输 ...

  7. LeetCode 第 69 场力扣双周赛

    5960. 将标题首字母大写 添加链接描述 给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母.请你按以下规则将每个单词的首字母 大写 : 如果单词的长度为 1 ...

  8. 几乎刷完了力扣所有的树题,我发现了这些东西

    点击蓝色"力扣加加"关注我哟 加个"星标",带你揭开算法的神秘面纱! ❝ 这是力扣加加第「28」篇原创文章 先上下本文的提纲,这个是我用 mindmap 画的一 ...

  9. Leetcode第321场周赛补题

    Leetcode第321场周赛补题 第一题:6245. 找出中枢整数 - 力扣(LeetCode) 分析:由于数组中是差值为1的等差数列,所以可以直接用等差数列求和公式的朴素法更加简便的解决这题,,其 ...

最新文章

  1. 突发!Spring Cloud 爆高危漏洞。。赶紧修复!!
  2. LeetCode 236. 二叉树的最近公共祖先
  3. 涨点明显 | 全面刷新COCO检测和分割Top-1(附论文下载)
  4. 网管日志-06.08.14
  5. CString截取字符串全攻略
  6. flatmap和map的区别!
  7. 解决Mysql读写分离数据延迟
  8. docker-compose的介绍与安装(结合官方文档)
  9. 黑鲨游戏手机2 Pro跑分曝光:搭载骁龙855 Plus实锤
  10. Part 3 —— 发布 Go Modules
  11. 段错误 php,如何解决php扩展出现段错误的问题
  12. Linux pthread_mutex_init()函数 [转]
  13. Photoshop压缩png图片
  14. 深入理解CSS动画animation
  15. load average 计算
  16. 大数据为湖湘互联网发展加码
  17. 演讲实录|OpenMLDB 与阿里云 MaxCompute 生态集成
  18. tensorflow中的shape函数理解
  19. python anaconda下载包_Anaconda下载 10.0.15063.0
  20. fpga实操训练(从模块到系统开发)

热门文章

  1. Win7下部署Lepus企业级MySQL数据库监控
  2. C# 在线培训之零基础入门 01:开篇及C#程序、解决方案的结构
  3. 《JAVA 语言程序设计基础篇》chapter 5 方法
  4. 指针学习4--合成析构函数做了什么
  5. sleep、wait、yield、join区别
  6. 训练集、验证集和测试集的概念及划分原则
  7. 【leetcode 简单】第四十二题 阶乘后的零
  8. CRM Online Outlook Client Configuration Wizard
  9. [转] 有关java中两个整数的交换问题
  10. sql升序,降序的问题