日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转圈打印矩阵

發布時間:2025/4/5 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转圈打印矩阵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目】 給定一個整型矩陣matrix,請按照轉圈的方式打印它。 例如:1 2 3 45 6 7 89 10 11 121314
15 16 打印結果為:1,2,3,4,8,12,16,15,14,13,9, 5,6,7,11, 10
【要求】 額外空間復雜度為O(1)

思路:找到矩陣的左上角坐標(tR,tC)和右下角坐標(dR,dC),之后寫一個遞歸函數,每一次打印最外層數據,代碼如下:

def spiralOrderPrint(Matrix):tR = 0tC = 0dR = len(Matrix)-1dC = len(Matrix[0])-1while tR <= dR and tC <= dC:printEdge(Matrix,tR,tC,dR,dC)tR +=1tC +=1dR -=1dC -=1def printEdge(Matrix,tR,tC,dR,dC):if tR == dR:for i in range(tC,dC):print(Matrix[tR][i])elif tC == dC:for i in range(tR,tC):print(Matrix[i][dR])else:cur_r = tRcur_c = tCwhile cur_c!=dC:print(Matrix[tR][cur_c])cur_c +=1while cur_r!=dR:print(Matrix[cur_r][dC])cur_r +=1while cur_c!=tC:print(Matrix[dR][cur_c])cur_c -=1while cur_r!=tR:print(Matrix[cur_r][tC])cur_r -=1s = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] spiralOrderPrint(s)

?

總結

以上是生活随笔為你收集整理的转圈打印矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。