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