Minimum Non-Zero Product of the Array Elements LeetCode solution in Java
1class Solution {2public int mod = 1_000_000_007;34public int minNonZeroProduct(int p) {5if (p == 1) return 1;67long mx = (long) (Math.pow(2, p)) - 1;8long sm = mx - 1;9long n = sm / 2;10long sum = rec(sm, n);1112return (int) (sum * (mx % mod) % mod);13}1415public long rec(long val, long n) {16if (n == 0) return 1;17if (n == 1) return (val % mod);1819long newVal = ((val % mod) * (val % mod)) % mod;2021if (n % 2 != 0) {22return ((rec(newVal, n / 2) % mod) * (val % mod)) % mod;23}2425return rec(newVal, n / 2) % mod;26}27}