算法-Binary Prefix Divisible By 5-可被 5 整除的二进制前缀

MATLAB App Designer 实现多窗口交互与数据传递实战 本文详细介绍了如何使用MATLAB App Designer实现多窗口交互与数据传递的实战技巧。从基础的多窗口应用设计到高级的动态窗口创建,涵盖了窗口调用控制、数据传递方法、状态管理及用户体验优化等核心内容,帮助开发者高效构建复杂的MATLAB GUI应用。 阅读详情

1、题目介绍

给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。
返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。

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

2、题目分析

  • 需要维持一个变量记录从0-i位置的元素二进制形式的大小,很简单 cur = (cur << 1) + A[i];
  • 之后用一个要求的数据机构来记录结果集,每遍历一个位置更新添加一个结果
  • 按照以上的思路进行代码的实现1,发现cur作为一个int型变量会越界,换成long还是会越界
  • 这时候就需要总结规律,结果需要的是一个boolean值,cur % 5 == 0 ?,能被5整除的数字只和最后一位数字有关系,最后一位的数字是5/0的时候才能被5整除,在判断之前将cur%10,见实现2,这样能有效避免越界
  • 再深入思考,这样多个两个取余数的操作,是不是可以化简一个,如果cur的最后一位是5或者0的,那么直接%5即可,这两种结果都是0,这样下一步直接进行判断cur==0,见实现3

3、代码实现

//实现1   
public List<Boolean> prefixesDivBy5(int[] A) {
        List<Boolean> res = new ArrayList<>();
        int cur = 0;
        for(int i = 0;i < A.length;i++){
            cur = cur * 2 + A[i];
            res.add(cur % 5 == 0);
        }
        return res;
    }
//实现2
    public List<Boolean> prefixesDivBy5(int[] A) {
        List<Boolean> res = new ArrayList<>();
        long cur = 0;
        for(int i = 0;i < A.length;i++){
            cur <<= 1;
            cur = (cur + A[i]) % 10;
            res.add(cur % 5 == 0);
        }
        return res;
    }
//实现3
    public List<Boolean> prefixesDivBy5(int[] A) {
        List<Boolean> res = new ArrayList<>();
        long cur = 0;
        for(int i = 0;i < A.length;i++){
            cur = ((cur << 1 )+ A[i]) % 5;
            res.add(cur == 0);
        }
        return res;
    }

4、复杂度分析

  • 时间复杂度:O(N),N是数组的大小
  • 空间复杂度:O(1),输出的结果不算额外的空间,所有只用了一个long变量的常数级空间
【ESP 保姆级教程】第三方库篇 ——TimeLib库,一个非常Nice的时间库,结合第三方进行校正时间 Time,这是一个为Arduino提供时间支持的库。 这个库的例子中会教会我们多种方式去获取时间: - 一个`RTC`时钟 - 网络`NTP`时间 - `GPS`时间 阅读详情

相关推荐

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

HBase过滤器

HBase过滤器 文章目录HBase过滤器作用比较过滤器比较运算符常见的六大比较过滤器BinaryComparator(二进制比较器)BinaryPrefixComparator(二进制前缀比较器)NullComparator(空比较器)一般不用BitComparator(位比较器)一般不用RegexStringComparator(正则比较器)SubstringComparator示例代码rowKey过滤器:RowFilter列簇过滤器:FamilyFilter列过滤器:QualifierFilter列值

weixin_58078092的博客 1101

java爬虫(爬取银行理财数据)

import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; imp

ROCK 2490

Binary Prefix Divisible By 5 (C++可被 5 整除的二进制前缀)

Binary Prefix Divisible By 5 (C++可被 5 整除的二进制前缀)

coolsunxu的博客 170

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

IAR9.4报错之编码方式

IAR9.40编码方式错误导致的报错

qq_36081075的博客 2626

【LeetCode】1018. Binary Prefix Divisible By 5 解题报告(Python)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法日期 题目地址:https://leetcode.com/problems/binary-prefix-divisible-by-5/ 题目描述 Given an array A of 0s and 1s, consider N_i: the i-th su...

负雪明烛 1304

Qt实现思维导图功能1『核心树』

利用Qt的QGraphicsView框架实现思维导图功能 百度网盘体验地址: 链接:https://pan.baidu.com/s/15x9F48agCDOQbsyH3VwVXA 提取码:8svh 注:UI风格参考博主:前行中的小猪,博文地址:https://blog.youkuaiyun.com/GoForwardToStep/article/details/124692790?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_u

浮生流年的博客 6161

linux 单位

linux 单位 man units   十进制MB = 1000000B  二进制加i, MiB = 1048576B ms 毫秒  us微秒 (本来要写成μs,但是ASCII context 下希腊字母μ 写成u)   NAME units, kilo, kibi, mega, mebi, giga, gibi - decimal and binary prefixes D...

weixin_33881140的博客 441

HyperLynx(十九)DDR(二)DDR的地址仿真

(5)设置水平标尺为2ns/div,垂直标尺为500mV/div,如果有必要,可以通过多次仿真,得到一个更加理想的结果。此外,还可以看到信号在高低电平切换时,反射波形基本趋于平缓,许多大的反射切换边缘已减小,这给了我们更大的定时裕量。如果这些DIMM是缓冲过的,则4个DIMM通道是可行的,但因为这是一个无缓冲DIMM,(20)在编辑传输线对话框中,选择“Values”选项卡,改变传输线长度为3in,具体设置如图所示,单击“确定”按钮。(17)为了增加电压摆幅,选择一个比原来的47Ω小的电阻。

小幽余生不加糖 4257

AEJoy —— 最受欢迎的 5 个 Ae 表达方式

NOTE] 原文作者我意识到表达式可能令人生畏,有些人宁愿复制粘贴有用的代码,而不愿学习这门语言。对此我完全理解。因此,我想与您分享我的。这些是我几乎在每个项目中都会使用的表达式,我认为它们极大地提升了工作流程。

ShaderJoy 的兴趣技术杂货铺 363

TiB、TB的区别

使用谷歌的单位转换,忽然糊涂了,对着Terabyte和Tebibyte, 知道应该是2进制和十进制的区别,单愣是不知道哪个应该是二进制。 查了下,解释如下,tebi是IEC1998年创建的新单位,这以前大家都2进制十进制糊涂的混用着。现在标准用法是Tib是二进制, TB是十进制。 The International Electrotechnical Commission (IE...

along 1万+

DeepSeek掘金——用DeepSeek模型构建AI 代理

在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。人工智能领域正在迅速发展,DeepSeek 的模型代表了智能 AI 代理开发的重大进步。在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。

3857

LeetCode1018.Binary Prefix Divisible By 5(可被 5 整除的二进制前缀)

1018.Binary Prefix Divisible By 5(可被 5 整除的二进制前缀)DescriptionDifficulty: mediumExample 1:Example 2:Example 3:Example 4:Note:分析参考代码 Description Given an array A of 0s and 1s, consider N_i: the i-th subar...

redtongue的博客 277

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

leetcode 1018. 可被 5 整除的二进制前缀(Binary Prefix Divisible By 5)

目录 题目描述: 示例 1: 示例 2: 示例 3: 示例 4: 解法: 题目描述: 给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位...

weixin_30552635的博客 158

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

1018. Binary Prefix Divisible By 5

1018. 可被 5 整除的二进制前缀 给定由若干0和1组成的数组 A。我们定义N_i:从A[0] 到A[i]的第 i个子数组被解释为一个二进制数(从最高有效位到最低有效位)。 返回布尔值列表answer,只有当N_i可以被 5整除时,答案answer[i] 为true,否则为 false。 示例 1: 输入:[0,1,1] 输出:[true,false,fal...

GGGGITFKBJG的主页 168

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

[Swift]LeetCode1018. 可被 5 整除的二进制前缀 | Binary Prefix Divisible By 5

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/stren...

weixin_30321449的博客 119

LeetCode - 1018 - 可被5整除的2进制前缀(binary-prefix-divisible-by-5)

一 目录 不折腾的前端,和咸鱼有什么区别目录一 目录二 前言三 解题及测试四 LeetCode Submit五 解题思路六 进一步思考二 前言 难度:简单涉及知识:数组题目地址:http...

weixin_41806099的博客 215

LeetCode 1018. Binary Prefix Divisible By 5

Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a binary number (from most-significant-bit to least-significant-bit.) Return a list of booleans answer, ...

katrina95的博客 521

Leetcode-1029 Binary Prefix Divisible By 5(可被 5 整除的二进制前缀)

1 class Solution 2 { 3 public: 4 vector<bool> prefixesDivBy5(vector<int>& A) 5 { 6 vector<bool> v(A.size()); 7 int rnt ...

weixin_30267691的博客 104

1018. Binary Prefix Divisible By 5可被 5 整除的二进制前缀

网址:https://leetcode.com/problems/binary-prefix-divisible-by-5/ 一次for循环遍历数组,在上次计算的基础上得到本次的结果! 1 class Solution { 2 public: 3 vector<bool> prefixesDivBy5(vector<int>& A) 4...

weixin_34001430的博客 88

LeetCode.1018-可被5整除的二进制数(Binary Prefix Divisible By 5)

这是小川的第379次更新,第407篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第241题(顺位题号是1018)。给定0和1的数组A,考虑N_i:从A[0]到A[i]的第i个子数组被解释为二进制数(从最高有效位到最低有效位)。 返回布尔值answer列表,当且仅当N_i可被5整除时,answer[i]为true。 例如: 输入:[0,1,1] 输出:[tr...

weixin_30493321的博客 106

Leetcode 1029. Binary Prefix Divisible By 5

Given an arrayAof0s and1s, considerN_i: the i-th subarray fromA[0]toA[i]interpretedas a binary number (from most-significant-bit to least-significant-bit.) Return a list of booleansanswer...

Dive Deep into The Knowledge 417

Binary Prefix Divisible By 5

class Solution { public List<Boolean> prefixesDivBy5(int[] A) { List<Boolean> result = new ArrayList<>(); int n = 0; for(int i=0;i<A.length;...

131

LeetCode—1018. 可被 5 整除的二进制前缀(Binary Prefix Divisible By 5)——分析及代码(Java)

LeetCode—1018. 可被 5 整除的二进制前缀[Binary Prefix Divisible By 5]——分析及代码[Java]一、题目二、分析及代码1. 模拟(1)思路(2)代码(3)结果三、其他 一、题目 给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。 返回布尔值列表 answer,只

江南土豆的博客 171

【LeetCode】1018. Binary Prefix Divisible By 5 可被 5 整除的二进制前缀(Easy)(JAVA)每日一题

【LeetCode】1018. Binary Prefix Divisible By 5 可被 5 整除的二进制前缀(Easy)(JAVA) 题目地址: https://leetcode.com/problems/binary-prefix-divisible-by-5/ 题目描述: Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a binar

qq_16927853的博客 206
上一篇: Redis-字典数据结构-源码深入解析
下一篇: Redis-[跳跃表]数据机构-深入解析
酱油瓶啤酒杯
博客等级 码龄8年 35粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值