Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

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)