0238.除自身以外数组的乘积
方法一:左右乘积列表
时间复杂度 $O(n)$,空间复杂度 $O(n)$。
impl Solution {
pub fn product_except_self(nums: Vec<i32>) -> Vec<i32> {
let (mut ans, n) = (Vec::new(), nums.len());
let (mut left, mut right) = (vec![1; n], vec![1; n]);
for i in 1..n {
left[i] = left[i - 1] * nums[i - 1];
}
for i in (0..n - 1).rev() {
right[i] = right[i + 1] * nums[i + 1];
}
for i in 0..n {
ans.push(left[i] * right[i]);
}
ans
}
}