Skip to content

Commit 9b1a293

Browse files
committed
q189
1 parent 4f272fe commit 9b1a293

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

array/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
mod q34;
22
mod q704;
3-
mod q35;
3+
mod q35;
4+
mod q189;

array/src/q189.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
struct Solution ();
2+
3+
impl Solution {
4+
5+
pub fn rotate1(nums: &mut Vec<i32>, k: i32) {
6+
let n = nums.len();
7+
let mut result = nums.iter().cloned().collect::<Vec<_>>();
8+
9+
for (i, v) in result.iter().enumerate() {
10+
if i < n-k as usize {
11+
nums[k as usize + i] = *v
12+
} else {
13+
nums[i - (n -k as usize)] = *v
14+
}
15+
16+
}
17+
18+
}
19+
20+
pub fn rotate(nums: &mut Vec<i32>, k: i32) {
21+
nums.reverse();
22+
nums[0..k as usize].reverse();
23+
nums[k as usize..].reverse();
24+
}
25+
26+
}
27+
28+
29+
30+
31+
#[cfg(test)]
32+
mod tests {
33+
use super::*;
34+
35+
#[test] fn common_test() {
36+
let mut nums = vec![1,3,5,6, 7];
37+
Solution::rotate(&mut nums, 2);
38+
assert_eq!(nums, vec![6, 7, 1,3,5]);
39+
}
40+
}

0 commit comments

Comments
 (0)