剑指Offer(十九):顺时针打印矩阵

2017年12月9日14:59:48 2 1,671 °C
摘要

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

剑指Offer(十九):顺时针打印矩阵

一、前言

本系列文章为《剑指Offer》刷题笔记。

刷题平台:牛客网

书籍下载:共享资源

二、题目

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

剑指Offer(十九):顺时针打印矩阵

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

1、思路

将结果存入vector数组,从左到右,再从上到下,再从右到左,最后从下到上遍历。

2、代码

C++:

Python2.7:

题目变型:

给定一个数字2,打印矩阵:

剑指Offer(十九):顺时针打印矩阵

给定一个数字3,打印矩阵:

剑指Offer(十九):顺时针打印矩阵

给定一个数字4,打印矩阵:

剑指Offer(十九):顺时针打印矩阵

Python:

weinxin
微信公众号
分享技术,乐享生活:Jack Cui公众号每周五推送“程序员欢乐送”系列资讯类文章,欢迎您的关注!
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 木一 来自天朝的朋友 谷歌浏览器 Windows 10 辽宁省沈阳市 东北大学一舍西 1

      我觉得这样还不错hhhh
      class Solution:
      # matrix类型为二维列表,需要返回列表

      def printMatrix(self, matrix):
      ans = []
      while len(matrix) != 0:
      ans += matrix[0][:]
      matrix = matrix[1:][:]
      if len(matrix) == 0:
      break
      matrix = [[x[i-1] for x in matrix] for i in range(len(matrix[0]),0,-1)] #逆时针旋转

      return ans

        • avatar Jack Cui Admin 来自天朝的朋友 Safari浏览器 Mac OS X 10_14_3 北京市 百度网讯科技联通节点

          @木一 good~