20240415 Finished
This commit is contained in:
parent
d427e7c1d8
commit
1a6acb08d6
|
@ -103,3 +103,4 @@ mod p55_jump_game;
|
|||
mod p45_jump_game_ii;
|
||||
mod p274_h_index;
|
||||
mod p380_insert_delete_getrandom_o1;
|
||||
mod p238_product_of_array_except_self;
|
45
src/problem/p238_product_of_array_except_self.rs
Normal file
45
src/problem/p238_product_of_array_except_self.rs
Normal file
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* [238] Product of Array Except Self
|
||||
*/
|
||||
pub struct Solution {}
|
||||
|
||||
// submission codes start here
|
||||
|
||||
impl Solution {
|
||||
pub fn product_except_self(nums: Vec<i32>) -> Vec<i32> {
|
||||
let mut result = vec![1; nums.len()];
|
||||
|
||||
for i in 1..nums.len() {
|
||||
result[i] = result[i - 1] * nums[i - 1];
|
||||
}
|
||||
|
||||
let mut suffix = 1;
|
||||
|
||||
for i in (0..nums.len() - 1).rev() {
|
||||
suffix *= nums[i + 1];
|
||||
|
||||
result[i] *= suffix;
|
||||
}
|
||||
|
||||
result
|
||||
}
|
||||
}
|
||||
|
||||
// submission codes end
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_238() {
|
||||
assert_eq!(
|
||||
vec![24, 12, 8, 6],
|
||||
Solution::product_except_self(vec![1, 2, 3, 4])
|
||||
);
|
||||
assert_eq!(
|
||||
vec![0, 0, 9, 0, 0],
|
||||
Solution::product_except_self(vec![-1, 1, 0, -3, 3])
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user