GoLang: Sign of the Product of an Array


There is 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

GoLang: Sign Function of the Product of Numbers

We don’t need to know the final product of all numbers in the array. We do only need to know if there is zero, or the number of negative numbers.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func arraySign(nums []int) int {    
    var c = 0
    for _, v := range nums {
        if v == 0 {
            return 0            
        } else if v < 0 {
            c += 1
        }
    }
    if (c & 1) == 1 {
        return -1
    }
    return 1
}
func arraySign(nums []int) int {    
    var c = 0
    for _, v := range nums {
        if v == 0 {
            return 0            
        } else if v < 0 {
            c += 1
        }
    }
    if (c & 1) == 1 {
        return -1
    }
    return 1
}

Time complexity O(N). Space complexity O(1). As we are not multiplying – thus there is no risk of integer overflow.

See other implementations:

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
356 words
Last Post: Teaching Kids Programming - Insert a Node into a Binary Search Tree via Recursion
Next Post: Teaching Kids Programming - Check if Word Equals Summation of Two Words

The Permanent URL is: GoLang: Sign of the Product of an Array

Leave a Reply