Minimum Non-Zero Product of the Array Elements LeetCode solution in Java

1
class Solution {
2
public int mod = 1_000_000_007;
3

4
public int minNonZeroProduct(int p) {
5
if (p == 1) return 1;
6

7
long mx = (long) (Math.pow(2, p)) - 1;
8
long sm = mx - 1;
9
long n = sm / 2;
10
long sum = rec(sm, n);
11

12
return (int) (sum * (mx % mod) % mod);
13
}
14

15
public long rec(long val, long n) {
16
if (n == 0) return 1;
17
if (n == 1) return (val % mod);
18

19
long newVal = ((val % mod) * (val % mod)) % mod;
20

21
if (n % 2 != 0) {
22
return ((rec(newVal, n / 2) % mod) * (val % mod)) % mod;
23
}
24

25
return rec(newVal, n / 2) % mod;
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0