Skip to main content

Sign of the Product of an Array

LeetCode 1950 | Difficulty: Easy​

Easy

Problem Description​

Implement a function signFunc(x) that returns:

- `1` if `x` is positive.

- `-1` if `x` is negative.

- `0` if `x` is equal to `0`.

You are given an integer array nums. Let product be the product of all values in the array nums.

Return signFunc(product).

Example 1:

Input: nums = [-1,-2,-3,-4,3,2,1]
Output: 1
Explanation: The product of all values in the array is 144, and signFunc(144) = 1

Example 2:

Input: nums = [1,5,0,2,-3]
Output: 0
Explanation: The product of all values in the array is 0, and signFunc(0) = 0

Example 3:

Input: nums = [-1,1,-1,1,-1]
Output: -1
Explanation: The product of all values in the array is -1, and signFunc(-1) = -1

Constraints:

- `1 <= nums.length <= 1000`

- `-100 <= nums[i] <= 100`

Topics: Array, Math


Approach​

Mathematical​

Look for mathematical patterns or formulas. Consider: modular arithmetic, GCD/LCM, prime factorization, combinatorics, or geometric properties.

When to use

Problems with clear mathematical structure, counting, number properties.


Solutions​

Solution 1: C# (Best: 84 ms)​

MetricValue
Runtime84 ms
Memory38.6 MB
Date2022-01-04
Solution
public class Solution {
public int ArraySign(int[] nums) {
int sign = 1;
for(int i=0;i<nums.Length;i++)
{
if(nums[i] == 0) return 0;
if(nums[i] < 0) sign = sign * -1;
}

return sign;
}
}

Complexity Analysis​

ApproachTimeSpace
Solution$O(n)$$O(1) to O(n)$

Interview Tips​

Key Points
  • Start by clarifying edge cases: empty input, single element, all duplicates.
  • LeetCode provides 2 hint(s) for this problem β€” try solving without them first.
πŸ’‘ Hints

Hint 1: If there is a 0 in the array the answer is 0

Hint 2: To avoid overflow make all the negative numbers -1 and all positive numbers 1 and calculate the prod