diff options
Diffstat (limited to 'other/rotate_image.rs')
-rw-r--r-- | other/rotate_image.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/other/rotate_image.rs b/other/rotate_image.rs new file mode 100644 index 0000000..376545d --- /dev/null +++ b/other/rotate_image.rs @@ -0,0 +1,27 @@ +struct Solution; + +impl Solution { + pub fn rotate(mut matrix: Vec<Vec<i32>>) { + let n = matrix.len(); + let depth = n / 2; + for i in 0..depth { + let (len, opp) = (n - 2 * i - 1, n - 1 - i); + for j in 0..len { + let tmp = matrix[i][i + j]; + matrix[i][i + j] = matrix[opp - j][i]; + matrix[opp - j][i] = matrix[opp][opp - j]; + matrix[opp][opp - j] = matrix[i + j][opp]; + matrix[i + j][opp] = tmp; + } + } + } +} + +fn main() { + let matrix = vec![ + vec![1,2,3], + vec![4,5,6], + vec![7,8,9] + ]; + print!("{:?}", Solution::rotate(matrix)); +} |