面试题20:顺时针打印矩阵

剑指Offer面试题20:顺时针打印矩阵 Java实现 题目:输入一个矩阵,按照从外向里的顺序依次打印出每一个数字。 例如,输入:  1     2     3       4                      5     6     7       8                      9    10    11    12                     13    14    15  阅读详情

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:输入如下矩阵:

1      2      3     4

5      6      7     8

9     10    11   12

13   14    15   16

则依次打印出数字:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.


分析

从题意中可以看出来,打印顺序是从左上角开始以螺旋状进行的。我们可以将它理解为:先打印最外面的一圈,然后从里圈的左上角开始继续打印一圈。因此我们可以定义四个变量up,down,left,right分别表示该矩阵的上下左右的边界,每当打印一圈,就缩小对应的边界即可。

代码如下:

void PrintMatrixClockwisely(const vector<vector<int> >& matrix)
{
    if(matrix.size()<=0)
        return;
    int up=0,down=matrix.size(),left=0,right=matrix[0].size();
    int i;
    while(up<down && left<right)
    {
        for(i=left;up<down && i<right;++i)
        {
            cout<<matrix[up][i]<<" ";
        }
        up++;
        for(i=up;left<right && i<down;++i)
        {
            cout<<matrix[i][right-1]<<" ";
        }
        right--;
        for(i=right-1;up<down && i>=left;--i)
        {
            cout<<matrix[down-1][i]<<" ";
        }
        down--;
        for(i=down-1;left<right && i>=up;--i)
        {
            cout<<matrix[i][left]<<" ";
        }
        left++;
    }
    cout<<endl;
}

以上

如果你有任何想法或是可以改进的地方,欢迎和我交流!

完整代码及测试用例在github上:点我前往

剑指Offer:面试题20——顺时针打印矩阵(java实现) 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路1(自己想的): 每次打印一行矩阵,然后将剩余的部分 阅读详情

相关推荐

网易数智CoreAgent实战:5步教你打造企业级AI数字员工(附避坑指南)

本文以网易数智CoreAgent智能体协作中枢为核心,提供了一份企业级AI数字员工的实战部署指南。文章详细拆解了从环境准备、智能体配置、业务集成、安全合规到效果评估的五个关键步骤,并分享了部署过程中的常见“避坑”经验,旨在帮助企业技术团队高效、安全地将AI智能体落地于实际业务场景,解决AI落地难题。

rice5的博客 952

剑指offer面试题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 输入一个矩阵如下:  1     2     3    4  5     6     7    8  9    10   11  12  13  14   15  16 则依次打印出数字:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 解析:由于题目是以

岩枭的博客 1万+

【Photoshop JSX脚本】强大的事件监听器脚本 - event_listener.jsx

新手第一次了解的事件监听一定是ScriptingListener.8bi插件,如果你对此插件有了基本运用,那么现在了解一款更方便的时间监听脚本event_listener.jsx。不再像ScriptingListener.8bi插件那样晦涩难懂。 1、准备event_listener.jsx文件到 F:\Program Files\Adobe Photoshop 2020\Presets\...

Greless的后花园 8206

剑指offer_输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字...

矩阵打印 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 ...

weixin_30594001的博客 399

接入穿山甲SDK时,Unity打Android包报错日志

SDK工程设置为Enable,项目工程设置为Disable。2、将unitypackage导入包名为:com.DefaultCompany.Myproject的另一个工程,打包报错。3、点击工程默认弹出Enable Android Auto-resolution 设置选项,点击Enable。1、新建一个空工程,设置包名为:com.ceshi.hewen,正常打包无报错,导出unitypackage。2、点击Reset to Defaults 重置参数,再点击ok关闭设置窗口。

不文不武的禾文 3583

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 489

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8

剑指offer: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路:这个题考虑的情况比较多,考察的是细心程度和面对复杂问题的逻辑分析能力。耐心分析就好。 首先在while里

u013686654的博客 6091

【ESP32实战】SPI驱动ILI9341屏幕:从基础绘图到汉字显示

本文详细介绍了如何使用ESP32通过SPI驱动ILI9341屏幕,从基础连接、SPI初始化到实现基础绘图、数字显示及汉字显示的全过程。文章包含实用的代码示例和优化技巧,帮助开发者快速掌握屏幕驱动技术,提升显示性能。特别针对常见问题如花屏、刷新率等提供了解决方案。

weixin_29164091的博客 621

java实现输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字

import java.util.ArrayList; /** * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 * 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. * * @author pomay * */ pu

pomay的博客 7151

Qt Creator 启动慢、卡顿、无响应 终极解决教程

<think>我们需根据内容生成≤150字的摘要。摘要要涵盖问题、原因、解决方案和效果。注意字数限制。</think>Qt Creator启动慢、卡顿、无响应,主因是配置文件QtCreator.ini膨胀至数十MB(正常<100KB)。删除%APPDATA%\QtProject下的膨胀配置、崩溃备份及qtcreator.db即可,启动从几十秒降至几秒,内存占用恢复正常。辅助优化:关闭有道词典取词、禁用无用插件、调整clangd设置。定期检查配置文件大小,避免多版本共用配置。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 70

打开.nc降水气象数据制作年降水量地图

图层的单位为度,在反距离插值中也是以度为单位,比较麻烦,还是想用以m为单位的投影,这里是个bug,后续调整一下。该彩色部分是以2021年1月、2月、3月的降水数据分别作为RGB得到。因为该栅格的分辨率还是太大了,一个栅格就能覆盖一个县,若想要进行降尺度,可以做插值处理。下载的数据集为2021-2022年,因此有12+12=24个月,24个波段。想要得到廊坊市周围的数据,需要裁剪范围,在降水数据图层上导出数据。打开数据管理工具-投影和变换-定义投影。在降水数据图层上右击属性,添加投影。得到了降尺度的插值图。

所有专家都曾始于新手 4519

输入一个矩阵,按照从外到里以顺时针的顺序依次打印每一个数字

算法描述: 输入一个矩阵,按照从外到里以顺时针的顺序依次打印每一个数字 算法实现: /************************************************************************* > File Name: main.c > Author: cyf > Mail: XXX@qq.com > Created Time: 2016年

yiluohan0307的专栏 985

YOLO11 改进系列 | 引入2023年 MLCA 的 C3k2_MLCA 模块,近零参数开销的本地-全局通道注意力,适合检测与分割特征增强

本文提出将MLCA(混合局部通道注意力)模块嵌入YOLOv11的C3k2框架中,形成C3k2_MLCA改进结构。该模块通过5×5局部池化和1×1全局池化双路融合,结合ECA式Conv1d生成通道注意力,在几乎不增加参数量的前提下(仅增加66个参数),实现了局部空间信息与全局通道统计的联合建模。相比传统SE和ECA注意力,MLCA保留了空间分布信息,更适合实例分割等需要精细定位的任务。实验表明改进后模型参数量仅增加0.002%,计算量基本不变,是一种高效的注意力增强方案。

qq_44224801的博客 92

面试题 20: 顺时针打印矩阵

一. 题目输入一个矩阵,按照从外到里以顺时针的顺序依次打印出每一个数字.代码请到我的代码库中下载 Point2Offer二. 代码package week_4; /**难度系数:*** * 剑指offer: 顺时针打印矩阵 * 方法: 找规律 * 测试用例:数组只有一行,一列,一行一列,二行二列,多行多列,为空 * @author dingding * Date:2017-7-8 14:1

高筑墙,广积粮,缓称王 1420

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

剑指offer之面试题20:顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.输入: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出:1,

sushauai的博客 471

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【剑指Offer】面试题20:顺时针打印矩阵

整理自剑指Offer 一:题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 二:解题思路 此题的关键是对循环结束条件的判断 还有在打印时对边

曦曦慕慕的专栏 296

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【剑指 Offer 学习】【面试题 20: 顺时针打印矩阵】【思路】

题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.   思路: 用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。 ...

handsome_zan的博客 211

《剑指Offer》面试题20:顺时针打印矩阵

《剑指Offer》 P127面试题20:顺时针打印矩阵题目:

(●—●) 896

剑指Offer之面试题20:顺时针打印矩阵

所有代码均通过G++编译器测试,仅为练手纪录。 //面试题20:顺时针打印矩阵 //题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 //面试题20:顺时针打印矩阵 //题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 void PrintMatrixCircle(int **ppNum,int nRow,int nCol,int

Pillary的专栏 605

面试题20:顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如      则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 思路:可以看做不断打印几个依次缩小的圆圈。第一个圆圈的起点是(1,1),第二个是(2,2),依次类推。 int main(int argc, const char * argv[]) { int

u012724503的专栏 288
上一篇: 面试题19:二叉树的镜像
下一篇: 面试题21:包含min函数的栈
SmartBrave
博客等级 码龄12年 25粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值