【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]
链接
https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/
耗时
解题:38 min
题解:10 min
题意
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
思路
将矩阵的每一圈作为一个循环节,问题即变为按从外到内的顺序顺时针输出矩阵每一圈的数字。一圈顺时针读取又可拆分为 4 部分,以最左上角的数字为起点,从左到右,从上到下,从右到左,从下到上。
PS: 特殊情况有一圈只有一行或一列,矩阵为空。
AC代码
class Solution {public:void solve(int x, int y, int xs, int xt, int ys, int yt, vector<vector<int>>& matrix, vector<int> &ans) {ans.push_back(matrix[x][y]);while(++y < yt) {ans.push_back(matrix[x][y]);}if(xt-xs == 1) return ;y = yt-1;while(++x < xt) {ans.push_back(matrix[x][y]);}if(yt-ys == 1) return ;x = xt-1;while(--y >= ys) {ans.push_back(matrix[x][y]);}y = ys;while(--x > xs) {ans.push_back(matrix[x][y]);}}vector<int> spiralOrder(vector<vector<int>>& matrix) {if(matrix.empty()) return {};vector<int> ans;int n = matrix.size();int m = matrix[0].size();for(int i = 0, j = 0; i < (n+1)/2 && j < (m+1)/2; ++i, ++j) {solve(i, j, i, n-i, j, m-j, matrix, ans);}return ans;}
};
【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]相关推荐
- leetcode剑指 Offer 29. 顺时针打印矩阵
一:题目 二:上码 class Solution {public:vector<int> spiralOrder(vector<vector<int>>& ...
- 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java
<LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...
- 剑指 Offer 29. 顺时针打印矩阵
题目 剑指offer的解题思路 顺时针打印矩阵,可以分解为每次打印一个数,顺序是从左到右,从上到下,然后从右到左,从下到上. 打印每一圈的起点(startX,startY)分别为(0,0),(1,1) ...
- 打印矩阵 java_【Java】 剑指offer(29) 顺时针打印矩阵
本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 每次打印矩阵最外面的一圈(用方法printMatrix ...
- 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵
立志用最少的代码做最高效的表达 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2, ...
- 剑指offer——29.顺时针打印矩阵(不熟)
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 ...
- 剑指offer 29 顺时针打印矩阵(可逆时针,任一点开始)
原书上写的解太麻烦了,而且还没有扩展性(比如从右上角开始打印,或者逆时针打印). 此外多个for循环的起止点也让人头晕,每个方向都要单独判断步进方向,因此代码也缺少优雅性. 这里我用direction ...
- 【算法】剑指 Offer 29. 顺时针打印矩阵
1,概述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6
- 剑指Offer(29)顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
最新文章
- 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
- 谷歌AutoML鼻祖Quoc Le新作AutoML-Zero:从零开始构建机器学习算法
- python详细安装教程环境配置-python环境安装详细步骤
- 我的 2021 之感谢有你们(上篇)
- 洛谷P4768 [NOI2018]归程 [可持久化并查集,Dijkstra]
- 切片器可以设置日期格式?_Power BI 中的切片器
- 轻松矿工抽水多少_欧冠 皇马vs顿涅茨克矿工 矿工主力缺席 皇马主场霸气狂飙...
- IDEA上传本地项目到SVN
- 通过迁移的方式解决Active Directory服务器问题之5-恢复服务器的应用
- XidianOJ 1007 易碎的鸟蛋
- 阻抗匹配 及 SI9000 使用
- SIFT算法原理介绍
- 正好股票资讯大盘平衡被打破
- 2.cycloneIII系列FPGA下载模式的配置
- 手机QQ2010(BlackBerry)Beta1公测
- 【大话云原生】煮饺子与docker、kubernetes之间的关系
- 【短视频运营】账号定位 ( 擅长方向 | 利他性 | 变项方向 | 赛道现状 | 账号成本 | 账号领域垂直 )
- Linux应用开发入门
- MYSQL学习笔记-(白夜黑羽)
- MVP -----个人理解与示例(android例子 实现)
热门文章
- 设置浏览器不使用缓存
- 期货中的期什么意思(期货什么意思是什么)
- Java集合、IO、多线程的一些知识
- 联想计算机M.2固态银盘,自己如何安装M.2固态硬盘?台式机与笔记本电脑安装M.2 SSD图文教程...
- Power Query|M函数:数据类型及数据结构
- 各个版本的Xcode/IOS SDK官网下载
- 计算机主机的拆卸的注意事项,如何进行电脑主机除尘及板卡维护
- JPA 5.映射关联关系
- windows10使用cuda11搭建pytorch深度学习框架——运行Dlinknet提取道路(二)——代码运行问题解决
- WSDM‘23 推荐系统论文梳理