1375. 二进制字符串前缀一致的次数

开始是用的暴力的方式处理的,可以通过但是时间较长
在这里插入图片描述
思考了一下,发现其实我只要判断当前左边是满的即可,所以修改了思路
代码改为

    def numTimesAllBlue3(self, flips: List[int]) -> int:
        num1 = 0
        ret = 0
        for index, item in enumerate(flips):
            num1 += index + 1 - item
            if num1 == 0:
                ret += 1
        return ret

    def numTimesAllBlue2(self, flips: List[int]) -> int:
        num2 = 0
        num1 = 0
        ret = 0
        for index, item in enumerate(flips):
            num1 += index + 1
            num2 += item
            if num1 == num2:
                ret += 1
        return ret

也都动过了,但是时长还是没有最短的那个短
在这里插入图片描述
我认真看了时间最短的那个解法,其实关键的点在于少做计算
在这里插入图片描述
同样的位置我使用的是加减法来处理,所以导致时间较长了。
但是这个范围我是可以介绍的
总结来说就是,能只用判断解决的逻辑问题还是少用计算处理

猜你喜欢

转载自blog.csdn.net/JianShengShuaiest/article/details/131203009
今日推荐