Sign of the Product of an Array
You can achieve the desired result by understanding how the sign of a product is determined by the number of negative numbers in the array and whether there are any zeros.
- If there’s at least one zero in the array, the product will be zero, so you should return 0.
- If there are an even number of negative numbers, the product will be positive, so you should return 1.
- If there are an odd number of negative numbers, the product will be negative, so you should return -1.
|
|
Explanation
- The variable
sign
is initialized to 1 (indicating a positive product). - Iterate through the array. If any number is 0, return 0 immediately.
- If any number is negative, multiply the sign by -1, effectively flipping the sign.
- Finally, return the
sign
, which will either be 1 for positive or -1 for negative.
title: Sign of the Product of an Array excerpt: The basic building blocks - Product Accumulator and 3 Way Comparison in action. tags: product-accumulator three-way-comparison
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
Implementation
|
|