91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

劍指offer:順時針打印矩陣

發布時間:2020-07-29 17:32:45 來源:網絡 閱讀:294 作者:Jayce_SYSU 欄目:編程語言

題目描述
輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字,例如,如果輸入如下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.

這種按照某個方向打印的,我們可以一圈一圈從外到內打印整個矩陣。在這個題目中,我們可以每次選擇一個起點(左上角),然后順時針打印一圈。

class Solution:
    # matrix類型為二維列表,需要返回列表
    def printMatrix(self, matrix):
        def helper(start_row, start_col):
            # 打印一圈的時候,向右這個方向是一定要打印的。
            # 其余三個方向需要滿足一定個條件后才會打印
            end_row = rows - start_row - 1
            end_col = cols - start_col - 1
            for i in range(start_col, end_col + 1):
                ans.append(matrix[start_row][i])

            if end_row > start_row:  # 只有當行數大于2的時候才向下
                for i in range(start_row + 1, end_row + 1):
                    ans.append(matrix[i][end_col])

            # 只有當列數大于2【且行數大于2】才向左。如果行數為1,那么就會重復打印同一行
            if end_col > start_col and end_row > start_row:
                for i in range(end_col - 1, start_col - 1, -1):
                    ans.append(matrix[end_row][i])

            # 只有當行數大于_3_【且列數大于2】才向上。
            # 如果行數為2,那么在向左之后就已經全部打印完了
            if end_row > start_row + 1 and end_col > start_col:
                for i in range(end_row - 1, start_row, -1):
                    ans.append(matrix[i][start_col])

        if not isinstance(matrix, list) or not isinstance(matrix[0], list):
            return
        rows, cols = len(matrix), len(matrix[0])
        ans = []
        start = 0
        # 判斷是否需要打印這一圈。通過觀察歸納得知,當rows 和 cols都大于起點坐標的時候需要打印
        while start * 2 < min(rows, cols):
            helper(start, start)
            start += 1

        return ans
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

忻州市| 鹤峰县| 南召县| 玛曲县| 宁河县| 罗城| 眉山市| 天等县| 武汉市| 乌拉特后旗| 寻甸| 汉寿县| 鸡泽县| 汶川县| 岫岩| 九江市| 永胜县| 尚义县| 葫芦岛市| 盐边县| 色达县| 西城区| 桦甸市| 滦南县| 格尔木市| 元朗区| 浑源县| 金山区| 沛县| 和平区| 鲁甸县| 邓州市| 丽水市| 梨树县| 陇川县| 泗水县| 军事| 邹城市| 罗平县| 阿巴嘎旗| 富顺县|