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 99154c7

Browse files
author
guangsheng.li01
committed
Solved 0088
1 parent 1ff89f3 commit 99154c7

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

‎src/a0088_merge_sorted_array.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* [0088] merge-sorted-array
3+
*/
4+
5+
pub struct Solution {}
6+
7+
// solution impl starts here
8+
9+
impl Solution {
10+
pub fn merge(nums1: &mut Vec<i32>, m: i32, nums2: &mut Vec<i32>, n: i32) {
11+
let (mut i, mut j, mut k) = (m - 1, n - 1, m + n - 1);
12+
while i >= 0 && j >= 0 {
13+
if nums1[i as usize] > nums2[j as usize] {
14+
nums1[k as usize] = nums1[i as usize];
15+
i -= 1;
16+
} else {
17+
nums1[k as usize] = nums2[j as usize];
18+
j -= 1;
19+
}
20+
k -= 1;
21+
}
22+
23+
while i >= 0 {
24+
nums1[k as usize] = nums1[i as usize];
25+
i -= 1;
26+
k -= 1;
27+
}
28+
29+
while j >= 0 {
30+
nums1[k as usize] = nums2[j as usize];
31+
j -= 1;
32+
k -= 1;
33+
}
34+
}
35+
}
36+
37+
// solution impl ends here
38+
39+
// solution tests starts here
40+
41+
#[cfg(test)]
42+
mod tests {
43+
use super::*;
44+
45+
#[test]
46+
fn test_case0() {
47+
let mut nums1 = vec![1, 2, 3, 0, 0, 0];
48+
Solution::merge(&mut nums1, 3, &mut vec![2, 5, 6], 3);
49+
assert_eq!(nums1, vec![1, 2, 2, 3, 5, 6]);
50+
}
51+
52+
#[test]
53+
fn test_case1() {
54+
let mut nums1 = vec![1, 2, 3, 4, 0, 0, 0];
55+
Solution::merge(&mut nums1, 4, &mut vec![2, 5, 6], 3);
56+
assert_eq!(nums1, vec![1, 2, 2, 3, 4, 5, 6]);
57+
}
58+
}
59+
60+
// solution tests ends here

‎src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ mod a0027_remove_element;
1212
mod a0035_search_insert_position;
1313
mod a0053_maximum_subarray;
1414
mod a0066_plus_one;
15+
mod a0088_merge_sorted_array;
1516
mod a0145_binary_tree_postorder_traversal;
1617
mod a0172_factorial_trailing_zeroes;
1718
mod a0400_nth_digit;

0 commit comments

Comments
(0)

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