1822. Sign of the Product of an Array
🟩 Easy
Implement a function signFunc(x)
that returns:
1
ifx
is positive.-1
ifx
is negative.0
ifx
is equal to0
. You are given an integer arraynums
. Letproduct
be the product of all values in the arraynums
.
Return signFunc(product)
.
Example 1
Input: nums = [-1,-2,-3,-4,3,2,1] Output: 2 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
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
Solution
My Solution
func arraySign(nums []int) int {
var sign int8 = 1
for _, v := range nums {
if v == 0 {
return 0
}
if v < 0 {
sign *= -1
}
}
return int(sign)
}
Optimal solution
func arraySign(nums []int) int {
negativeCount := 0
// Loop through the array
for _, num := range nums {
if num == 0 {
return 0 // If any number is 0, product will be 0
}
if num < 0 {
negativeCount++ // Count negative numbers
}
}
// If there are an odd number of negative numbers, the product is negative.
if negativeCount % 2 == 0 {
return 1 // Positive product
}
return -1 // Negative product
}

Leetcode: link
Last updated
Was this helpful?