diff --git a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README.md b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README.md index 2a81bc3f1b9ec..028509821ac18 100644 --- a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README.md +++ b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README.md @@ -122,10 +122,9 @@ class Solution { public int minimumOperations(int[] nums) { Set s = new HashSet<>(); for (int i = nums.length - 1; i >= 0; --i) { - if (s.contains(nums[i])) { + if (!s.add(nums[i])) { return i / 3 + 1; } - s.add(nums[i]); } return 0; } @@ -180,6 +179,24 @@ function minimumOperations(nums: number[]): number { } ``` +#### Rust + +```rust +use std::collections::HashSet; + +impl Solution { + pub fn minimum_operations(nums: Vec) -> i32 { + let mut s = HashSet::new(); + for i in (0..nums.len()).rev() { + if !s.insert(nums[i]) { + return (i / 3) as i32 + 1; + } + } + 0 + } +} +``` + diff --git a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README_EN.md b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README_EN.md index 0bb441f86095b..f4290fac124df 100644 --- a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README_EN.md +++ b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/README_EN.md @@ -118,10 +118,9 @@ class Solution { public int minimumOperations(int[] nums) { Set s = new HashSet<>(); for (int i = nums.length - 1; i >= 0; --i) { - if (s.contains(nums[i])) { + if (!s.add(nums[i])) { return i / 3 + 1; } - s.add(nums[i]); } return 0; } @@ -176,6 +175,24 @@ function minimumOperations(nums: number[]): number { } ``` +#### Rust + +```rust +use std::collections::HashSet; + +impl Solution { + pub fn minimum_operations(nums: Vec) -> i32 { + let mut s = HashSet::new(); + for i in (0..nums.len()).rev() { + if !s.insert(nums[i]) { + return (i / 3) as i32 + 1; + } + } + 0 + } +} +``` + diff --git a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.java b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.java index 7867529603680..39ad4381c00b7 100644 --- a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.java +++ b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.java @@ -2,10 +2,9 @@ class Solution { public int minimumOperations(int[] nums) { Set s = new HashSet<>(); for (int i = nums.length - 1; i >= 0; --i) { - if (s.contains(nums[i])) { + if (!s.add(nums[i])) { return i / 3 + 1; } - s.add(nums[i]); } return 0; } diff --git a/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.rs b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.rs new file mode 100644 index 0000000000000..f342802788c2d --- /dev/null +++ b/solution/3300-3399/3396.Minimum Number of Operations to Make Elements in Array Distinct/Solution.rs @@ -0,0 +1,13 @@ +use std::collections::HashSet; + +impl Solution { + pub fn minimum_operations(nums: Vec) -> i32 { + let mut s = HashSet::new(); + for i in (0..nums.len()).rev() { + if !s.insert(nums[i]) { + return (i / 3) as i32 + 1; + } + } + 0 + } +} \ No newline at end of file