欢迎光临散文网 会员登陆 & 注册

830. 较大分组的位置

2023-02-11 09:01 作者:目标力扣Knight  | 我要投稿

830. 较大分组的位置


方法一:双指针

枚举每一组连续字符的起点和终点,设置计数器统计字符组长度,满足条件将起点与终点存入数组并且返回

Python版本

 



C++版本


复杂度分析

  • 时间复杂度:O(N)。最恶劣情况,假设每个连续字符间隔为1,最多需要搜索 n / 2 次;

  • 空间复杂度:  O(N)。 最坏情况,均为间隔为2的字符组,总数为 n / 3 组;

备注

  1. 做题时考虑因素太多,不仅考虑了字符组种类,还考虑了分组长度和起止点。题目并未限定每一种字符仅统计一次,所以前面三者中第一点和第三点无需考虑,存在这个思维误区;

  2. 面向测试用例编程,原意在for循环内部统计分组长度,但显而易见长度统计十分困难,我们仅需找到第一重循环字符为起点,连续多个为终点的字符组即可,无需考虑多种字符;

  3. 易错点:while循环相比for循环指定终点,更容易因为忘记制造指针偏移而造成 TLE 。


830. 较大分组的位置的评论 (共 条)

分享到微博请遵守国家法律