惠州建设企业网站asp网站怎么下载源码
惠州建设企业网站,asp网站怎么下载源码,做毕业设计实物的网站,个人做网站报价代码随想录二刷 #xff5c; 数组 #xff5c; 螺旋矩阵II 题目描述解题思路 代码实现 题目描述
29.螺旋矩阵II 给你一个正整数 n #xff0c;生成一个包含 1 到 n2 所有元素#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1#xff1… 代码随想录二刷 数组 螺旋矩阵II 题目描述解题思路 代码实现 题目描述
29.螺旋矩阵II 给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1
输入n 3 输出[[1,2,3],[8,9,4],[7,6,5]]
示例 2
输入n 1 输出[[1]]
提示
1 n 20
解题思路 代码实现
本题不涉及具体的算法比较考察对代码的掌控能力。
模拟顺时针画矩阵的过程
填充上行从左到右填充右侧从上到下填充下行从右到左填充左侧从下到上
由外向内一圈一圈画下去。
每一圈都要坚持左闭右开或左开右闭的原则也就是说坚持循环不变量的原则。
class Solution {
public:vectorvectorint generateMatrix(int n) {vectorvectorint result(n, vectorint(n, 0));int startX 0, startY 0; // 每一次循环的起始位置int loop n / 2; // 每个圈循环的次数int mid n / 2; // 矩阵中间位置int count 1; // 给矩阵中每一个空格赋值int offset 1; // 控制每一条边的长度每次循环都收缩一位int i, j;while (loop--) {i startX;j startY;// 填充上行从左到右for (j startY; j n - offset; j) {res[startX][j] count;}// 填充右侧从上到下for (i startX; i n - offset; i) {res[i][j] count;} // 填充下行从右到左for (; j startY; j--) {res[i][j] count;}// 填充左侧从下到上for (; i startX; i--) {res[i][j] count;} startX;startY;offset 1;}if (n % 2) {res[mid][mid] count;}return res;}
};时间复杂度O(n^2) 空间复杂度O(1)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86521.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!