Sign of the Product of an Array
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
Solution 1:class Solution {public int arraySign(int[] nums) {int sign = 1;for(int num:nums){if(num == 0){return 0;}if(num < 0){sign *= -1;}}return sign;}}Solution 2:class Solution {public int arraySign(int[] nums) {int countNeg = 0;for(int num:nums){if(num == 0){return 0;}if(num < 0){countNeg++;}}return countNeg % 2 == 0 ? 1 : -1;}}
TC: O(n) SC: O(1)