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

一、题目描述

二、解题思路

整体思路

由于题目描述比较清晰,所以我们可以采用模拟的方法来解决这个问题。

具体思路

(1)首先,定义变量,ret数组作为最后的返回值,mod记录二进制前缀mod5的值,初始化为0;

(2)遍历nums数组:

<1>计算当前位置的mod值,执行Mod*=2,Mod+=nums[i],Mod%=5;

<2>将ret[i]赋值为!Mod,如果为0,就为true,反之就为false;

(3)nums遍历完成,ret更新完成,返回ret即为所求;

注意:在遍历数组的过程中需要计算当前二进制前缀是否为5的整数倍,我们不需要记录前缀的值,只需要记录前缀mod5的值就可,可以避免溢出。

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<bool> prefixesDivBy5(vector<int>& nums) {
        int n=nums.size();
        vector<bool> ret(n,false);

        int Mod=0;
        for(int i=0;i!=n;i++){
            Mod*=2;
            Mod+=nums[i];
            Mod%=5;
            ret[i]=!Mod;
        }
        return ret;
    }
};
相关推荐
测试19982 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
杜子不疼.5 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
石山代码6 小时前
C++ 内存分区 堆区
java·开发语言·c++
心中有国也有家6 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
绝知此事6 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
碧海银沙音频科技研究院6 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
csdn_aspnet7 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
LuminousCPP8 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
张小姐的猫8 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++