LeetCode1221.分割平衡字符串1894.找到需要补充粉笔的学生编号(C++)
LeetCode1221.分割平衡字符串&1894.找到需要补充粉笔的学生编号(C++)
- 前言
- LeetCode1221.分割平衡字符串
- 解题思路
- 代码
- LeetCode1894.找到需要补充粉笔的学生编号
- 解题思路
- 代码
- 微信公众号文章
前言
一个普通解法的简单题LeetCode1221.分割平衡字符串
一个普通解法的中等题LeetCode1894.找到需要补充粉笔的学生编号
LeetCode1221.分割平衡字符串
点击链接开始刷题φ(゜▽゜*)♪:LeetCode1221.分割平衡字符串
解题思路
直接遍历字符串
遇到 R,就使 r 计数加一;
遇到 L,就使 l 计数加一;
当 r==l 的时候,说明出现了一个 R 和 L 数量相等的子串,可以把它分割出去,
所以使 count 计数加一,并且使 r 和 l 重新归 0,进行下一轮的计数;
最后 count 的值就是可以通过分割得到的平衡字符串的最大数量。
代码
class Solution {public:int balancedStringSplit(string s) {int count = 0; //可以通过分割得到的平衡字符串的最大数量int r = 0; //R的数量int l = 0; //L的数量for(int i=0;i<s.size();++i){if(s[i]=='R')++r;else if(s[i]=='L')++l;if(r==l){r = 0;l = 0;++count;}}return count;}
};
- 时间复杂度:O(n)
- 空间复杂度:O(1)
LeetCode1894.找到需要补充粉笔的学生编号
点击链接开始刷题φ(゜▽゜*)♪:LeetCode1894.找到需要补充粉笔的学生编号
解题思路
因为老师是一直重复这个过程的,可能会有很多很多轮回,直到粉笔不够
所以先遍历一遍数组 chalk,把一轮下来学生需要的粉笔总数算出来
然后将 k 对 sum 进行取模
就会得到最后一轮开始时还剩余的粉笔数量
这些粉笔一定会在这最后一轮消耗完毕
所以只要再遍历一次数组 chalk
每次 k 都减去 chalk[i],直到 k<chalk[i],则返回 i
因为粉笔一定会在最后一轮消耗完,所以必然是从 return i 处结束这个函数
根本不会执行到 return 0 这一行,所以写 return -1 啥的也行~
代码
class Solution {public:int chalkReplacer(vector<int>& chalk, int k) {int len = chalk.size();long sum = 0;for(int i=0;i<len;++i){sum += chalk[i];}k = (int)k%sum; //取模for(int i=0;i<len;++i){if(k<chalk[i])return i; //最后肯定是从这里返回结果k -= chalk[i];}return 0; //不会执行到这里}
};
- 时间复杂度:O(n)
- 空间复杂度:O(1)
微信公众号文章
LeetCode1221.分割平衡字符串&1894.找到需要补充粉笔的学生编号
LeetCode1221.分割平衡字符串1894.找到需要补充粉笔的学生编号(C++)相关推荐
- 每日一题:1894.找到需要补充粉笔的学生编号 简单的模拟题目,注意求余的技巧!...
1894.找到需要补充粉笔的学生编号 https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk/ 难度 ...
- 1894. 找到需要补充粉笔的学生编号
1894. 找到需要补充粉笔的学生编号 一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - ...
- Leetcode刷题100天—1894. 找到需要补充粉笔的学生编号( 数组)—day34
前言: 作者:神的孩子在歌唱 大家好,我叫运智 1894. 找到需要补充粉笔的学生编号 难度中等39收藏分享切换为英文接收动态反馈 一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依 ...
- LeetCode 1894. 找到需要补充粉笔的学生编号
文章目录 1. 题目 2. 解题 1. 题目 一个班级里有 n 个学生,编号为 0 到 n - 1 . 每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 ...
- 【leetcode刷题】找到需补充粉笔的学生编号
前言 题目:一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复 ...
- LeetCode刷题1894-中等-找到需要补充粉笔的学生编号
文章目录 ☀️ 前言 ☀️
- ✨【Code皮皮虾】一次通过99.90%,思路详解【找到需要补充粉笔的学生编号】
文章目录
- leetcode1221. 分割平衡字符串(贪心算法)
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的. 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串. 返回可以通过分割得到的平衡字符串的最大数量. 示例 1: 输入:s = ...
- 2021-09-10 LeetCode1894-找到需要补充粉笔的学生编号(每日一题)
算法思路借鉴于官方题解,添加了详细注释用于理解,刷题打卡 感觉这题也就是个easy难度,没什么特殊的地方 class Solution {public:int chalkReplacer(vector ...
最新文章
- 利用函数来得到所有子节点号 利用函数来取得最高级的节点号
- 神经网络中的 Dropout 以及变体方法
- 如何在服务器运行aspx_ASP.NET开发实战——(四)MVC是如何运行?它的生命周期是什么?...
- mysql 交互命令 导出_MySQL数据导入导出方法与工具(2)
- ios keychain 不被清理_iOS签名机制和说明文件【ios企业签名吧】
- 【教你几种禁止修改IP的方法】
- VARCHART XGantt Activex 5.2.095 Crack
- linux yum安装驱动,centos8安装alsa驱动
- 【数字基带传输】误码率的分析方法(BER Performance)
- 斑马条码打印机常见故障大盘点
- 全民分销时代,企业如何运营分销平台?
- 实现strStr()函数(C++)
- English--美式发音
- ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)
- hive、impala的客户端,cli、beeline、WebHCat
- Ubuntu18.04安装Ceres库和G20库
- AnyLogic第二讲行人仿真空间逻辑讲解
- 《软件方法》第六章 自测题
- C语言指针学习(6)指针数组-字符指针数组
- 锐捷VSU配置实例(附拓扑图)