There is a function signFunc(x)
that returns:
1
ifx
is positive.-1
ifx
is negative.0
ifx
is equal to0
.
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
Related Topics:
Math
- If there is any
0
, return0
. - Otherwise, return
-1
if there are odd number of negative numbers; otherwise1
.
// OJ: https://leetcode.com/problems/sign-of-the-product-of-an-array/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
public:
int arraySign(vector<int>& A) {
int cnt = 0;
for (int n : A) {
if (n == 0) return 0;
cnt += n < 0;
}
return cnt % 2 ? -1 : 1;
}
};