diff --git a/solution/0500-0599/0594.Longest Harmonious Subsequence/README.md b/solution/0500-0599/0594.Longest Harmonious Subsequence/README.md index 06b75b6a92e88..faf66f120bb69 100644 --- a/solution/0500-0599/0594.Longest Harmonious Subsequence/README.md +++ b/solution/0500-0599/0594.Longest Harmonious Subsequence/README.md @@ -174,6 +174,28 @@ function findLHS(nums: number[]): number { } ``` +#### Rust + +```rust +use std::collections::HashMap; + +impl Solution { + pub fn find_lhs(nums: Vec) -> i32 { + let mut cnt = HashMap::new(); + for &x in &nums { + *cnt.entry(x).or_insert(0) += 1; + } + let mut ans = 0; + for (&x, &c) in &cnt { + if let Some(&y) = cnt.get(&(x + 1)) { + ans = ans.max(c + y); + } + } + ans + } +} +``` + diff --git a/solution/0500-0599/0594.Longest Harmonious Subsequence/README_EN.md b/solution/0500-0599/0594.Longest Harmonious Subsequence/README_EN.md index 606ae0f82eff8..58275fbc53a6b 100644 --- a/solution/0500-0599/0594.Longest Harmonious Subsequence/README_EN.md +++ b/solution/0500-0599/0594.Longest Harmonious Subsequence/README_EN.md @@ -170,6 +170,28 @@ function findLHS(nums: number[]): number { } ``` +#### Rust + +```rust +use std::collections::HashMap; + +impl Solution { + pub fn find_lhs(nums: Vec) -> i32 { + let mut cnt = HashMap::new(); + for &x in &nums { + *cnt.entry(x).or_insert(0) += 1; + } + let mut ans = 0; + for (&x, &c) in &cnt { + if let Some(&y) = cnt.get(&(x + 1)) { + ans = ans.max(c + y); + } + } + ans + } +} +``` + diff --git a/solution/0500-0599/0594.Longest Harmonious Subsequence/Solution.rs b/solution/0500-0599/0594.Longest Harmonious Subsequence/Solution.rs new file mode 100644 index 0000000000000..968a9a460e1b8 --- /dev/null +++ b/solution/0500-0599/0594.Longest Harmonious Subsequence/Solution.rs @@ -0,0 +1,17 @@ +use std::collections::HashMap; + +impl Solution { + pub fn find_lhs(nums: Vec) -> i32 { + let mut cnt = HashMap::new(); + for &x in &nums { + *cnt.entry(x).or_insert(0) += 1; + } + let mut ans = 0; + for (&x, &c) in &cnt { + if let Some(&y) = cnt.get(&(x + 1)) { + ans = ans.max(c + y); + } + } + ans + } +}