1822. Sign of the Product of an Array
Description of the Problem
There is a function signFunc(x) that returns:
1ifxis positive.-1ifxis negative.0ifxis equal to0. You are given an integer arraynums. Letproductbe the product of all values in the arraynums.
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
Code (Rust)
impl Solution {
pub fn array_sign(nums: Vec<i32>) -> i32 {
nums
.into_iter()
.map( |a| if a < 0 { -1 } else if a > 0 { 1 } else { 0 } )
.reduce(|a, b| a * b)
.unwrap()
}
}
Complexity
- n is the number of elements in the array
Time complexity:
- \( T(n) = \Theta(n) \)
Auxiliary Space:
- \( S(n) = O(1) \)