列表

详情


1018. 可被 5 整除的二进制前缀

给定一个二进制数组 nums索引从0开始 )。

我们将xi 定义为其二进制表示形式为子数组 nums[0..i] (从最高有效位到最低有效位)。

返回布尔值列表 answer,只有当 xi 可以被 5 整除时,答案 answer[i] 为 true,否则为 false

 

示例 1:

输入:nums = [0,1,1]
输出:[true,false,false]
解释:
输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0] 为 true 。

示例 2:

输入:nums = [1,1,1]
输出:[false,false,false]

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<bool> prefixesDivBy5(vector<int>& nums) { } };

golang 解法, 执行用时: 12 ms, 内存消耗: 5.9 MB, 提交时间: 2021-06-18 16:42:25

func prefixesDivBy5(nums []int) []bool {
    // 溢出
    n := len(nums)
    ans := make([]bool, n)
    x := 0
    for i, v := range nums {
        x = ( x << 1 | v ) % 5
        ans[i] = x == 0
    }
    return ans

}

上一题