Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 695f867

Browse files
authored
Update 1035.不相交的线.md about rust
1 parent f90e8a2 commit 695f867

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

‎problems/1035.不相交的线.md‎

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,21 +155,44 @@ func max(a, b int) int {
155155
Rust:
156156

157157
```rust
158-
pub fn max_uncrossed_lines(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
159-
let (n, m) = (nums1.len(), nums2.len());
160-
let mut last = vec![0; m + 1]; // 记录滚动数组
161-
let mut dp = vec![0; m + 1];
162-
for i in 1..=n {
163-
dp.swap_with_slice(&mut last);
164-
for j in 1..=m {
165-
if nums1[i - 1] == nums2[j - 1] {
166-
dp[j] = last[j - 1] + 1;
167-
} else {
168-
dp[j] = last[j].max(dp[j - 1]);
158+
impl Solution {
159+
pub fn max_uncrossed_lines(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
160+
let mut dp = vec![vec![0; nums2.len() + 1]; nums1.len() + 1];
161+
for (i, num1) in nums1.iter().enumerate() {
162+
for (j, num2) in nums2.iter().enumerate() {
163+
if num1 == num2 {
164+
dp[i + 1][j + 1] = dp[i][j] + 1;
165+
} else {
166+
dp[i + 1][j + 1] = dp[i][j + 1].max(dp[i + 1][j]);
167+
}
168+
}
169+
}
170+
dp[nums1.len()][nums2.len()]
171+
}
172+
}
173+
```
174+
175+
> 滚动数组
176+
177+
```rust
178+
impl Solution {
179+
pub fn max_uncrossed_lines(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
180+
let mut dp = vec![0; nums2.len() + 1];
181+
for num1 in nums1 {
182+
let mut prev = 0;
183+
for (j, &num2) in nums2.iter().enumerate() {
184+
let temp = dp[j + 1];
185+
if num1 == num2 {
186+
// 使用上一次的状态,防止重复计算
187+
dp[j + 1] = prev + 1;
188+
} else {
189+
dp[j + 1] = dp[j + 1].max(dp[j]);
190+
}
191+
prev = temp;
169192
}
170193
}
194+
dp[nums2.len()]
171195
}
172-
dp[m]
173196
}
174197
```
175198

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /