There is a function signFunc(x) that returns:
1ifxis positive.-1ifxis negative.0ifxis 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
-1if 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;
}
};