zoukankan      html  css  js  c++  java
  • 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;++i)
            {
                n=(n*2+A[i])%5;
                result.add(0==n);
            }
            return result;
        }
    }
    

    本题主要难点在于位数问题,如果在32位以内或者是语言所能支持的位数之内,直接用int不断的移位就可以了,但是本题总共有30000位,无论哪种语言估计都没这么大的整形。

    观察: 被5整除,十进制形式必须末尾是5或者0, 因此只需关注末尾的数字。

    十进制  二进制

    7           111

    14          1110

    15          1111

    观察(111) 这个例子,不能被5整除,那么再加一位,如果0则依然不能整除,1则可以;所以每次仅保存末尾的数字即可

  • 相关阅读:
    2020/12/2
    2020/12/1
    Cannot do a soft reset in the middle of a merge
    webpack img
    rm -fr ".git/rebase-apply"
    css 颜色
    初始化样式
    a标签
    esma 最新
    前端
  • 原文地址:https://www.cnblogs.com/lychnis/p/10651988.html
Copyright © 2011-2022 走看看