19.顺时针打印矩阵-剑指offer-Python2.7

Python剑指Offer题解 Python剑指Offer题解 本题解配合leetcode中剑指Offer刷题使用 参考链接:图解算法数据结构 文章目录剑指 Offer 03. 数组中重复的数字剑指 Offer 04. 二维数组中的查找剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 07. 重建二叉树剑指 Offer 09. 用两个栈实现队列剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题剑指 Offer 11. 旋转数组的最小数字剑指 Offe 阅读详情

剑指offer第19题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj
顺时针打印矩阵

题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.

思路
题目要求顺时针打印矩阵,可以选择在原矩阵上进行操作。另外,我们可以换一种思路:将矩阵进行逆时针旋转,这样我们只需要每次输出矩阵的第一行matrix[0]就可以了。

Python2.7编写

# -*- coding:utf-8 -*-
class Solution:
    # matrix类型为二维列表,需要返回列表
    def printMatrix(self, matrix):
        # write code here
        res = [] #用于保存结果
        i = 0
        #直到所有的元素都输出,终止循环
        while len(matrix[0]) != 0:
            i += 1
            res += matrix[0] #每次取逆时针旋转后矩阵的第一行
            #将矩阵第一行matrix[1:]删除后,进行逆时针旋转,旋转操作见下面参考链接
            matrix = [[row[col] for row in matrix[1:]] for col in range(len(matrix[0])-1,-1,-1)]
        return res

写在后面
将矩阵进行逆时针旋转的操作参考:https://baijiahao.baidu.com/s?id=1579306472315552043&wfr=spider&for=pc

golang任意代码免杀绕过火绒+电脑管家 火绒和电脑管家主要以静态规则为主,但是有时候静态杀起来也挺让人奔溃的,这边分享一下如何拿捏火绒和电脑管家本文主要介绍如何通过garble进行混淆编译来绕过火绒,garble也可以绕过其他杀软,但是对火绒和电脑管家特别有效果,以火绒为例 下面来对比一下golang原生和garble混淆编译后得差距来一个很原始的的shellcode loader代码,将原始shellcode base64后就进行加载执行。 阅读详情

相关推荐

4.DJI-PSDK云台x-port控制:

使用PSDK 的“云台控制”功能,开发者需要先设计负载设备的云台并开发出控制云台的程序,将云台的控制函数注册到PSDK 指定的接口后,用户通过使用DJI Pilot、基于MSDK 开发的移动端App 及遥控器即可控制基于PSDK 开发的具有云台功能的负载设备,同时获得负载设备的相关信息,如姿态等。云台的姿态如 图2.云台姿态 所示,根据用户的控制指令,云台能够调整姿态;云台的关节如 图1.云台关节 所示,云台关节是云台上带动负载设备转动的结构件:云台电机,云台关节角即云台电机转动的角度。

哒宰的博客 819

[剑指offer]顺时针打印矩阵(Python)

题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.思路:先取矩阵的第一行,接着将剩下作为新矩阵进行一个逆时针90度的翻转,接着获取第一行,直到矩阵为空。需要注意的点pop() 越界...

a1084958096的博客 5033

飞秋(FeiQ)2013正式版

软件名称:飞秋2013正式版版本:3.0.0.1更新日期:2013-04-12 争做国内最好的局域网聊天软件,具备空间日志、文件共享表情远程等功能,绿色免安装免费软件!

剑指offer_第19题_顺时针打印矩阵_Python

题目描述 输入一个矩阵 按照从外向里以顺时针的顺序依次打印出每一个数字 例如,如果输入如下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. ...

Datawhale 635

剑指Offer——顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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. 题解 #include <iostream> #include <vector> using...

叶琼州的代码小窝 232

剑指Offer(十九):顺时针打印矩阵(C++/Python

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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. 解题思路 这道题主要考察循环,将打印矩阵的过程线分解为打印一个个的圈,用四个循环分别打印每个圈有四条边。 C+...

qq_41562704的博客 378

剑指Offer19.顺时针打印矩阵Python实现)

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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. 解法一:循环法 # -*- coding:utf-8 -*- class Solution(): def p...

大数据之眸 283

剑指offer 19顺时针打印矩阵 python c++

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 则依次打印出数字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 输出并删除第一行后,变为 4 5 6 7 8 9 再进行一次逆时针旋转,就变成: 6 9 5 8 4 7 继续重复上述操作即可。 python版 # -*- coding:utf-8 -*- class Solution:

雾隐雾现的至渝博客 2万+

剑指Offer [Python] | 19 顺时针打印矩阵

剑指Offer [Python] 」第19题 —— 顺时针打印矩阵

是圣洁呀✨ 320

【刷题】2021最新剑指Offer汇总

新手村 关卡1-1 洛谷的第一个任务 超级玛丽游戏(洛谷-P1000):点击这里 A+B Problem(洛谷-P1001):点击这里

瑞新の博客:bennyrhys 6280

剑指Offer19.用循环法顺时针打印矩阵Python实现)

问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 思路: Python...

weixin_43439235的博客 758

剑指offer(第二版) Python3实现

剑指offer Python题解 03.数组中重复的数字 04.二维数组中的查找 05.替换空格 06.从尾到头打印链表 07.重建二叉树 08.二叉树的下一个节点 09.用两个栈实现队列 10.斐波那契数列 11.旋转数组中的最小数字 12.矩阵中的路径 13.机器人的运动范围 14.剪绳子 15.二进制中 1 的个数 16.数值的整数次方 17.打印从1到最大的n位数 18.删除列表中重复的...

算法探索之路 7358

剑指Offer19.顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 解题思路 没有涉及复杂的数据结构或者高级的算法,但是要包含多个循环,还需要判断多个边界条件。需要先把问题考虑清楚,最后才开始写代码。 关键点:形成清晰的思路,把复杂的问题分解成若干简单的问题 可以用一个循环来打印矩阵,每一次打印矩阵中的一个圈 循环结束的条件,假设矩阵的行数是rows,列数是columns,打印第一圈的左上角的坐标是(0,0),第二圈是(1,1),发现左上角的坐标中行和列总是相同的。 5*5的矩阵,最后一

u012067933的专栏 267

剑指Offer__19顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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. 思路: 本题的一个核心问题是如何实现顺时针打印,解决了这个问题,这道题就会迎刃而解,我参考了 风中摇曳的叶子 的...

Ling的博客 333

Python慢刷《剑指Offer

记录刷题生活,完整代码,包括算法和输入输出部分 在github自提:https://github.com/Amazingren/Algorithm_practiceGithub地址 PS该项目主要包括两个部分: 第一阶段:剑指Offer的题目 第二阶段:LeetCode的题目 【项目特点】 1.该项目用Python语言实现 2.该项目均在自己的电脑上运行过示例,且通过先关网站提交评判 3.为了记录和整理方便都是基于Jupyter-notebook进行编写 1. 二维数组中的查找 【题目描述】 在一个二维

Amazingren的博客 603

python顺时针打印矩阵

给定一个矩阵数据,顺时针将数据打印出来。 import numpy as np import pandas as pd #生成一个10*8的矩阵 data = np.arange(1, 81).reshape((10,8)) df = pd.DataFrame(data) while True: #判断行或者列是否为空,为空则退出循环 if len(df.index) ==...

funcups的博客 615

15.反转链表-剑指offer-Python2.7

剑指offer第15题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj 反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路1 首先,用指针p指向第一个元素节点来保存第一个元素节点的位置。用一个指针q指向一个指针域为空的节点,这个节点用来做为链表反转后的最后一个节点。 用指针pr保存指针p原来指向的下一个节点,然后让指针p从指向原始的...

Qiankun Wang的博客 634

10.矩阵覆盖-剑指offer-Python2.7

剑指offer第10题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj 矩阵覆盖 题目描述 我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法? 思路 将2xn的覆盖方法记为f(n)。 用第一个2x1的矩形去覆盖大矩形的最左边时有两种选择: 横着放和竖着放。横着放的时候,左下角...

Qiankun Wang的博客 525

16.合并两个排序的链表-剑指offer-Python2.7

剑指offer第16题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj 合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路1 首先,我们要找到新链表的首节点new_head,new_head为两个给定链表首节点元素的较小值。接着,不断地将给定链表中的较小的节点元素加入到新链表...

Qiankun Wang的博客 484

14.链表中倒数第K个结点-剑指offer-Python2.7

剑指offer第14题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj 链表中倒数第K个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路1 要想找到倒数第k个结点,我们可以先求出链表的总长度,然后就可以找到倒数第k个结点在链表中的位置,之后再遍历一遍链表,直到遍历到要求结点的位置时终止遍历。注意:输入的链表可能为空;k可能大于链表的长度...

Qiankun Wang的博客 435

7.斐波那契数列-剑指offer-Python2.7

剑指offer第三题 牛客网在线编程链接 https://www.nowcoder.com/activity/oj 斐波那契数列 题目描述 要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n&amp;lt;=39 思路1:递归 当n = 0时,Fibonacci = 0;当n = 1时,Fibonacci = 1;当n &amp;gt;= 2时,Fibonacci(n) = Fibona...

Qiankun Wang的博客 416
上一篇: 16.合并两个排序的链表-剑指offer-Python2.7
下一篇: 20.包含min函数的栈-剑指offer-Python2.7
Qiankun Wang
博客等级 码龄10年 16粉丝 29原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值