mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Merge pull request #669 from andywang0607/59_rust
增加0059.螺旋矩阵II Rust語言實現
This commit is contained in:
@ -358,6 +358,58 @@ func generateMatrix(_ n: Int) -> [[Int]] {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Rust:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
impl Solution {
|
||||||
|
pub fn generate_matrix(n: i32) -> Vec<Vec<i32>> {
|
||||||
|
let mut res = vec![vec![0; n as usize]; n as usize];
|
||||||
|
let (mut startX, mut startY, mut offset): (usize, usize, usize) = (0, 0, 1);
|
||||||
|
let mut loopIdx = n/2;
|
||||||
|
let mid: usize = loopIdx as usize;
|
||||||
|
let mut count = 1;
|
||||||
|
let (mut i, mut j): (usize, usize) = (0, 0);
|
||||||
|
while loopIdx > 0 {
|
||||||
|
i = startX;
|
||||||
|
j = startY;
|
||||||
|
|
||||||
|
while j < (startY + (n as usize) - offset) {
|
||||||
|
res[i][j] = count;
|
||||||
|
count += 1;
|
||||||
|
j += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while i < (startX + (n as usize) - offset) {
|
||||||
|
res[i][j] = count;
|
||||||
|
count += 1;
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while j > startY {
|
||||||
|
res[i][j] = count;
|
||||||
|
count += 1;
|
||||||
|
j -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
while i > startX {
|
||||||
|
res[i][j] = count;
|
||||||
|
count += 1;
|
||||||
|
i -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
startX += 1;
|
||||||
|
startY += 1;
|
||||||
|
offset += 2;
|
||||||
|
loopIdx -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(n % 2 == 1) {
|
||||||
|
res[mid][mid] = count;
|
||||||
|
}
|
||||||
|
res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user