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)
.
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
Input: nums = [1,5,0,2,-3] Output: 0 Explanation: The product of all values in the array is 0, and signFunc(0) = 0
Input: nums = [-1,1,-1,1,-1] Output: -1 Explanation: The product of all values in the array is -1, and signFunc(-1) = -1
1 <= nums.length <= 1000
-100 <= nums[i] <= 100
# @param {Integer[]} nums
# @return {Integer}
def array_sign(nums)
sign = 1
nums.each do |x|
return 0 if x == 0
sign *= -1 if x < 0
end
sign
end
impl Solution {
pub fn array_sign(nums: Vec<i32>) -> i32 {
let mut sign = 1;
for x in nums {
if x == 0 {
return 0;
} else if x < 0 {
sign *= -1;
}
}
sign
}
}