Skip to content

Commit ec80dcf

Browse files
committed
Completed '283. Move Zeroes'
1 parent 3e4682b commit ec80dcf

File tree

4 files changed

+52
-2
lines changed

4 files changed

+52
-2
lines changed

Readme.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
- Solutions Visualized – [@CoffeelessProgrammer | Instagram](https://www.instagram.com/coffeelessprogrammer/)
55

66
## Environment
7-
- <span>Rust v1.73.0</span>
7+
- <span>Rust v1.74.0</span>
88

99
## Problems Completed
1010

@@ -18,6 +18,7 @@
1818
- **Arrays**
1919
- <span>27. Remove Element</span>
2020
- <span>88. Merge Sorted Array</span>
21+
- <span>283. Move Zeroes</span>
2122
- **Strings**
2223
- <span>13. Roman to Integer</span>
2324
- <span>67. Add Binary</span>

src/array/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
pub mod p0027_remove_element;
22
pub mod p0088_merge_sorted_array;
3+
pub mod p0283_move_zeroes;
34

45
pub fn run() {}
56

src/array/p0088_merge_sorted_array.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub fn solve(nums1: &mut Vec<i32>, mut m: usize, nums2: Vec<i32>, mut n: usize)
3232
}
3333

3434
#[cfg(test)]
35-
mod template_tests {
35+
mod merge_sorted_array_tests {
3636
use super::*;
3737

3838
#[test]

src/array/p0283_move_zeroes.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Problem: 283. Move Zeroes (Easy)
3+
* URL: https://leetcode.com/problems/move-zeroes/
4+
*
5+
* Runtime: 7 ms (76.56%)
6+
* Memory Usage: 2.16 MB (89.54%)
7+
*/
8+
9+
10+
pub fn solve(nums: &mut Vec<i32>) {
11+
let mut next_zero = 0;
12+
let mut len = nums.len();
13+
14+
for i in 0..len {
15+
if(nums[i] != 0) {
16+
nums[next_zero] = nums[i];
17+
next_zero += 1;
18+
}
19+
}
20+
21+
for num in &mut nums[next_zero..len] {
22+
*num = 0;
23+
}
24+
25+
// for i in next_zero..nums.len() {
26+
// nums[i] = 0;
27+
// }
28+
}
29+
30+
31+
#[cfg(test)]
32+
mod move_zeroes_tests {
33+
use super::*;
34+
35+
#[test]
36+
fn happy_path() {
37+
let mut nums = vec![0,1,0,3,12];
38+
solve(&mut nums);
39+
assert!(nums == vec![1,3,12,0,0]);
40+
}
41+
42+
#[test]
43+
fn single_non_zero_element() {
44+
let mut nums = vec![1];
45+
solve(&mut nums);
46+
assert_eq!(nums, vec![1]);
47+
}
48+
}

0 commit comments

Comments
 (0)