Sign of the Product of an Array
LeetCode 1950 | Difficulty: Easyβ
EasyProblem 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)β
| Metric | Value |
|---|---|
| Runtime | 84 ms |
| Memory | 38.6 MB |
| Date | 2022-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β
| Approach | Time | Space |
|---|---|---|
| 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