LeetCode1221.分割平衡字符串&1894.找到需要补充粉笔的学生编号(C++)

  • 前言
    • LeetCode1221.分割平衡字符串
      • 解题思路
      • 代码
    • LeetCode1894.找到需要补充粉笔的学生编号
      • 解题思路
      • 代码
    • 微信公众号文章

前言

一个普通解法的简单题LeetCode1221.分割平衡字符串
一个普通解法的中等题LeetCode1894.找到需要补充粉笔的学生编号

LeetCode1221.分割平衡字符串

点击链接开始刷题φ(゜▽゜*)♪:LeetCode1221.分割平衡字符串

解题思路

直接遍历字符串
遇到 R,就使 r 计数加一;
遇到 L,就使 l 计数加一;
r==l 的时候,说明出现了一个 RL 数量相等的子串,可以把它分割出去,
所以使 count 计数加一,并且使 rl 重新归 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,把一轮下来学生需要的粉笔总数算出来
然后将 ksum 进行取模
就会得到最后一轮开始时还剩余的粉笔数量
这些粉笔一定会在这最后一轮消耗完毕
所以只要再遍历一次数组 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++)相关推荐

  1. 每日一题:1894.找到需要补充粉笔的学生编号 简单的模拟题目,注意求余的技巧!...

    1894.找到需要补充粉笔的学生编号 https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk/ 难度 ...

  2. 1894. 找到需要补充粉笔的学生编号

    1894. 找到需要补充粉笔的学生编号 一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - ...

  3. Leetcode刷题100天—1894. 找到需要补充粉笔的学生编号( 数组)—day34

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 1894. 找到需要补充粉笔的学生编号 难度中等39收藏分享切换为英文接收动态反馈 一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依 ...

  4. LeetCode 1894. 找到需要补充粉笔的学生编号

    文章目录 1. 题目 2. 解题 1. 题目 一个班级里有 n 个学生,编号为 0 到 n - 1 . 每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 ...

  5. 【leetcode刷题】找到需补充粉笔的学生编号

    前言 题目:一个班级里有 n 个学生,编号为 0 到 n - 1 .每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复 ...

  6. LeetCode刷题1894-中等-找到需要补充粉笔的学生编号

    文章目录 ☀️ 前言 ☀️

  7. ✨【Code皮皮虾】一次通过99.90%,思路详解【找到需要补充粉笔的学生编号】

    文章目录

  8. leetcode1221. 分割平衡字符串(贪心算法)

    在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的. 给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串. 返回可以通过分割得到的平衡字符串的最大数量. 示例 1: 输入:s = ...

  9. 2021-09-10 LeetCode1894-找到需要补充粉笔的学生编号(每日一题)

    算法思路借鉴于官方题解,添加了详细注释用于理解,刷题打卡 感觉这题也就是个easy难度,没什么特殊的地方 class Solution {public:int chalkReplacer(vector ...

最新文章

  1. 利用函数来得到所有子节点号 利用函数来取得最高级的节点号
  2. 神经网络中的 Dropout 以及变体方法
  3. 如何在服务器运行aspx_ASP.NET开发实战——(四)MVC是如何运行?它的生命周期是什么?...
  4. mysql 交互命令 导出_MySQL数据导入导出方法与工具(2)
  5. ios keychain 不被清理_iOS签名机制和说明文件【ios企业签名吧】
  6. 【教你几种禁止修改IP的方法】
  7. VARCHART XGantt Activex 5.2.095 Crack
  8. linux yum安装驱动,centos8安装alsa驱动
  9. 【数字基带传输】误码率的分析方法(BER Performance)
  10. 斑马条码打印机常见故障大盘点
  11. 全民分销时代,企业如何运营分销平台?
  12. 实现strStr()函数(C++)
  13. English--美式发音
  14. ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)
  15. hive、impala的客户端,cli、beeline、WebHCat
  16. Ubuntu18.04安装Ceres库和G20库
  17. AnyLogic第二讲行人仿真空间逻辑讲解
  18. 《软件方法》第六章 自测题
  19. C语言指针学习(6)指针数组-字符指针数组
  20. 锐捷VSU配置实例(附拓扑图)

热门文章

  1. 2018程序员拜年的奇思妙想,涨姿势了
  2. a1 抛光等级spi_模具抛光分几个等级呢?
  3. 在线思维导图怎么用?MindNow给你分享
  4. SAP FICO-模块 关于固定资产年结和折旧的问题
  5. 32java访问(http):国家气象局 免费接口
  6. python anova_在python中对GLM进行Anova测试
  7. SQL 简介以及MySQL的优点
  8. 快速学习-帕特里夏树
  9. 微信小程序报错:运行内存不足,请重新打开该小程序
  10. Facebook 申请蓝色认徽章