尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

DeepSeek LeetCode 59. 螺旋矩阵 II Rust实现

DeepSeek    LeetCode 59. 螺旋矩阵 II Rust实现 LeetCode 59. 螺旋矩阵 II 的 Rust 实现如下。方法分层填充推荐思路将矩阵看作一层一层的“壳”从外层到内层逐层填充。对于第 layer 层从 0 开始该层左上角坐标为 (layer, layer)右下角坐标为 (n - layer - 1, n - layer - 1)。每层按顺时针顺序填充四条边即可。implSolution{pubfngenerate_matrix(n:i32)-VecVeci32{letnnasusize;letmutmatrixvec![vec![0;n];n];letmutnum1;letlayers(n1)/2;// 总层数forlayerin0..layers{letstartlayer;letendn-layer-1;// 1. 上边从左到右forcolinstart..end{matrix[start][col]num;num1;}// 2. 右边从上到下注意跳过左上角已经填过的元素ifstartend{forrowin(start1)..end{matrix[row][end]num;num1;}}// 3. 下边从右到左注意跳过右下角已经填过的元素ifstartend{forcolin(start..end).rev(){matrix[end][col]num;num1;}}// 4. 左边从下到上注意跳过左下角和右上角已经填过的元素ifstartend{forrowin((start1)..end).rev(){matrix[row][start]num;num1;}}}matrix}}复杂度分析· 时间复杂度O(n²)每个位置恰好被赋值一次。· 空间复杂度O(1)不考虑返回的矩阵。测试示例letresultSolution::generate_matrix(3);// result [[1, 2, 3], [8, 9, 4], [7, 6, 5]]该实现直接适配 LeetCode 的函数签名可直接提交。
返回列表