leetcode-cn Daily Challenge on January 14th, 2021.
Difficulty : Easy
Related Topics : Array
Given an array
A
of0
s and1
s, considerN_i
: the i-th subarray fromA[0]
toA[i]
interpreted as a binary number (from most-significant-bit to least-significant-bit.)Return a list of booleans
answer
, whereanswer[i]
is true if and only ifN_i
is divisible by 5.Input: [0,1,1] Output: [true,false,false] Explanation: The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.
Input: [1,1,1] Output: [false,false,false]
Input: [0,1,1,1,1,1] Output: [true,false,false,false,true,false]
Input: [1,1,1,0,1] Output: [false,false,false,false,false]
1 <= A.length <= 30000
A[i]
is0
or1
- mine
- Java
Runtime: 2 ms, faster than 100.00%, Memory Usage: 39.8 MB, less than 43.14% of Java online submissions
public List<Boolean> prefixesDivBy5(int[] A) { List<Boolean> res = new ArrayList<>(A.length); int t = 0; for(int a : A){ t = (t << 1) + a; t = t % 5; res.add(t == 0); } return res; }
- Java