技术标签: 剑指offer
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例 1:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]
示例 2:
输入:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
输出: [1,2,3,4,8,12,11,10,9,5,6,7]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/spiral-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
if(matrix.empty() || matrix[0].empty()) return {
};
vector<int> res;
int m = matrix.size(), n = matrix[0].size();
// 确定上下左右四条边的位置
int up = 0, down = m - 1, left = 0, right = n - 1;
while (true)
{
for (int i = left; i <= right; i++) res.push_back(matrix[up][i]);
if (++up > down) break;
for (int i = up; i <= down; i++) res.push_back(matrix[i][right]);
if (--right < left) break;
for (int i = right; i >= left; i--) res.push_back(matrix[down][i]);
if (--down < up) break;
for (int i = down; i >= up; i--) res.push_back(matrix[i][left]);
if (++left > right) break;
}
return res;
}
};
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/spiral-matrix-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ret;
ret.resize(n);
for(int i=0;i<n;i++)
ret[i].resize(n);
int x=1;
int left=0,right=n-1,up=0,down=n-1;
while(true)
{
for(int i=left;i<=right;i++)
ret[up][i]=x++;
if(++up>down) break;
for(int i=up;i<=down;i++)
ret[i][right]=x++;
if(--right<left) break;
for(int i=right;i>=left;i--)
ret[down][i]=x++;
if(--down<up) break;
for(int i=down;i>=up;i--)
ret[i][left]=x++;
if(++left>right) break;
}
return ret;
}
};
排查了一下1无法访问cdn.jsdelivr.net去Github看确实中国地区有无法访问的issue官方给出了回答GitHub - PipecraftNet/jsdelivr-auto-fallback: 修复 cdn.jsdelivr.net 无法访问的问题就是要在网页里进行替换folium的网页是自动生成的所以生成后我们完成替换代码如下m.save('maptest.html') #maptest.html改成你的文件search_text = "cdn....
OllyDbg 使用笔记 (十三)参考书:《加密与解密》视频:小甲鱼 解密系列 视频方法一:内嵌补丁 加载程序,按F9运行,点击Enter Reg.Code 输入name,key等,先不要按OK ,到OD中 按Ctrl+N打开输入输出表,搜索KillTimer,设置断点。再点击注册窗口的OK,我们可以看见: (也可以通搜索注册失败时弹出窗口中的“The registration code seems to be not valid” 来找到下面代码)
作者 | youzhibing来源 | cnblogs.com/youzhibing/p/9553752.html读源码的经历刚参加工作那会,没想过去读源码,更没想过去改框架的源码;总想...
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]来源:力扣(LeetCode)链接:http...
参考博主:https://blog.csdn.net/jiaqu2177/article/details/81945692一:准备工作:1、两台Windows机器我用的版本是【cn_windows_server_2012_r2_with_update_x64_dvd_4048415.iso】2、Office Online Server安装包:cn_office_online_serve...
物联网ARM开发-3STM32GPIO操作平台
[email protected] RSA介绍RSA算法是一个广泛使用的公钥算法。其密钥包括公钥和私钥。它能用于数字签名、身份认证以及密钥交换。RSA密钥长度一般使用1024位或者更高。RSA密钥信息主要包括[1]: n : 模数 e : 公钥指数 d : 私钥指数 p : 最初的大素数 q : 最初的大素数 dmp1 : e*dmp1 = 1 (mod (p-1)) dmq1 : e*d
前端三大框架之一,最流行的前端框架之一
本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处CSDN学院课程地址RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10036RxJava2从入门到精通-中级篇:https://edu.csdn.net/course/detail/10037RxJava2从入门到精通-进阶篇:https://edu.csdn....
JMeter安装由于Jmeter是基于java开发,首先需要下载安装JDK (省略)http://jmeter.apache.org/download_jmeter.cgi下载后运行jmeter.bat即可测试实例JMeter脚本编写1。添加线程组线程组参数详解:1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户...
原因就是用了系统的python2.7正确应该用3.x版本sudo ln -s /usr/bin/python3.5 /usr/bin/python.建立软连接 将python指向python3.x或者是删掉2.7sudo rm /usr/bin/pythonsudo ln -s /usr/bin/python3 /usr/bin/python
接下来两周不写新题~认真复习补题解