LeetCode #1018. Binary Prefix Divisible By 5

题目

1018. Binary Prefix Divisible By 5


解题方法

初始化一个结果数组rat和一个当前位置的数curnum,遍历数组,每次对curnum进行累加操作 curnum = curnum * 2 + A[i],因为向后移动一位其实就是进行一次二进制的左移操作,再加上当前位置的0或者1,然后把 curnum % 5 == 0 的判别结果存入rat即可。
时间复杂度:O(n)
空间复杂度:O(1)


代码

class Solution:
    def prefixesDivBy5(self, A: List[int]) -> List[bool]:
        curnum = 0
        rat = []
        for i in range(len(A)):
            curnum = curnum * 2 + A[i]
            rat.append(curnum % 5 == 0)
        return rat
posted @ 2020-11-24 10:23  老鼠司令  阅读(56)  评论(0编辑  收藏  举报