diff --git a/solution/3300-3399/3354.Make Array Elements Equal to Zero/README.md b/solution/3300-3399/3354.Make Array Elements Equal to Zero/README.md index b4e9345431db7..9ba8001660a84 100644 --- a/solution/3300-3399/3354.Make Array Elements Equal to Zero/README.md +++ b/solution/3300-3399/3354.Make Array Elements Equal to Zero/README.md @@ -216,6 +216,49 @@ function countValidSelections(nums: number[]): number { } ``` +#### Rust + +```rust +impl Solution { + pub fn count_valid_selections(nums: Vec) -> i32 { + let s: i32 = nums.iter().sum(); + let mut ans = 0; + let mut l = 0; + for &x in &nums { + if x != 0 { + l += x; + } else if l * 2 == s { + ans += 2; + } else if (l * 2 - s).abs() <= 1 { + ans += 1; + } + } + ans + } +} +``` + +#### C# + +```cs +public class Solution { + public int CountValidSelections(int[] nums) { + int s = nums.Sum(); + int ans = 0, l = 0; + foreach (int x in nums) { + if (x != 0) { + l += x; + } else if (l * 2 == s) { + ans += 2; + } else if (Math.Abs(l * 2 - s) <= 1) { + ans += 1; + } + } + return ans; + } +} +``` + diff --git a/solution/3300-3399/3354.Make Array Elements Equal to Zero/README_EN.md b/solution/3300-3399/3354.Make Array Elements Equal to Zero/README_EN.md index 02383f6da1d3f..c88906853cb47 100644 --- a/solution/3300-3399/3354.Make Array Elements Equal to Zero/README_EN.md +++ b/solution/3300-3399/3354.Make Array Elements Equal to Zero/README_EN.md @@ -214,6 +214,49 @@ function countValidSelections(nums: number[]): number { } ``` +#### Rust + +```rust +impl Solution { + pub fn count_valid_selections(nums: Vec) -> i32 { + let s: i32 = nums.iter().sum(); + let mut ans = 0; + let mut l = 0; + for &x in &nums { + if x != 0 { + l += x; + } else if l * 2 == s { + ans += 2; + } else if (l * 2 - s).abs() <= 1 { + ans += 1; + } + } + ans + } +} +``` + +#### C# + +```cs +public class Solution { + public int CountValidSelections(int[] nums) { + int s = nums.Sum(); + int ans = 0, l = 0; + foreach (int x in nums) { + if (x != 0) { + l += x; + } else if (l * 2 == s) { + ans += 2; + } else if (Math.Abs(l * 2 - s) <= 1) { + ans += 1; + } + } + return ans; + } +} +``` + diff --git a/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.cs b/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.cs new file mode 100644 index 0000000000000..ce90e38ef3947 --- /dev/null +++ b/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.cs @@ -0,0 +1,16 @@ +public class Solution { + public int CountValidSelections(int[] nums) { + int s = nums.Sum(); + int ans = 0, l = 0; + foreach (int x in nums) { + if (x != 0) { + l += x; + } else if (l * 2 == s) { + ans += 2; + } else if (Math.Abs(l * 2 - s) <= 1) { + ans += 1; + } + } + return ans; + } +} diff --git a/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.rs b/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.rs new file mode 100644 index 0000000000000..bcdbccfb621f6 --- /dev/null +++ b/solution/3300-3399/3354.Make Array Elements Equal to Zero/Solution.rs @@ -0,0 +1,17 @@ +impl Solution { + pub fn count_valid_selections(nums: Vec) -> i32 { + let s: i32 = nums.iter().sum(); + let mut ans = 0; + let mut l = 0; + for &x in &nums { + if x != 0 { + l += x; + } else if l * 2 == s { + ans += 2; + } else if (l * 2 - s).abs() <= 1 { + ans += 1; + } + } + ans + } +}