aboutsummaryrefslogtreecommitdiff
path: root/rotate_image.rs
blob: 376545d4649771d2e76ed4f691dfd43615091c56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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));
}