All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1001_1100.s1018_binary_prefix_divisible_by_5.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1001_1100.s1018_binary_prefix_divisible_by_5;

// #Easy #Array #2022_02_25_Time_3_ms_(84.58%)_Space_49.7_MB_(32.50%)

import java.util.ArrayList;
import java.util.List;

/**
 * 1018 - Binary Prefix Divisible By 5\.
 *
 * Easy
 *
 * You are given a binary array `nums` ( **0-indexed** ).
 *
 * We define xi as the number whose binary representation is the subarray `nums[0..i]` (from most-significant-bit to least-significant-bit).
 *
 * *   For example, if `nums = [1,0,1]`, then x0 = 1, x1 = 2, and x2 = 5.
 *
 * Return _an array of booleans_ `answer` _where_ `answer[i]` _is_ `true` _if_ xi _is divisible by_ `5`.
 *
 * **Example 1:**
 *
 * **Input:** nums = [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.
 *
 * **Example 2:**
 *
 * **Input:** nums = [1,1,1]
 *
 * **Output:** [false,false,false]
 *
 * **Constraints:**
 *
 * *   1 <= nums.length <= 105
 * *   `nums[i]` is either `0` or `1`.
**/
public class Solution {
    public List prefixesDivBy5(int[] nums) {
        List result = new ArrayList<>(nums.length);
        int remainder = 0;
        for (int j : nums) {
            remainder = (j + (remainder << 1)) % 5;
            result.add(remainder == 0);
        }
        return result;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy