国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Leetcode 54:Spiral Matrix 螺旋矩陣

mochixuan / 1929人閱讀

摘要:螺旋矩陣給定一個(gè)包含個(gè)元素的矩陣行列,請(qǐng)按照順時(shí)針螺旋順序,返回矩陣中的所有元素。每次轉(zhuǎn)向或都會(huì)自減。循環(huán)可操作性很高,可以直接操作索引坐標(biāo)改變遍歷方式,不再贅述。

54:Spiral Matrix 螺旋矩陣

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

給定一個(gè)包含 m x n 個(gè)元素的矩陣(m 行, n 列),請(qǐng)按照順時(shí)針螺旋順序,返回矩陣中的所有元素。

Example 1:

Input:
[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]
Output: [1,2,3,6,9,8,7,4,5]

Example 2:

Input:
[
  [1, 2, 3, 4],
  [5, 6, 7, 8],
  [9,10,11,12]
]
Output: [1,2,3,4,8,12,11,10,9,5,6,7]
解題思路:

? 參考例二,觀察索引改變方式:(0,0)--->(0,3)、(0,3)--->((2,3)--->(2,0)--->(1,0)--->(1,2)

? 從(0,3)看,分別是:向下 橫坐標(biāo)自增1,到2;向左:縱坐標(biāo)自減1 ,到0;向上橫坐標(biāo)自減1,到1;向右縱坐標(biāo)自增1,到2

? 假如m*n的矩陣,從(0,m-1)開始,向下移動(dòng)n-1次到達(dá)最下面,再向左m-1次,向上n-2次,向右m-2次,接著就是:向下n-3,向左m-3,向上n-4,向右m-4。每次轉(zhuǎn)向m或n都會(huì)自減1。

? 這是我的思路,網(wǎng)上很多都是直接操作索引坐標(biāo),我覺得不是很好理解,因?yàn)槌^一個(gè)螺旋的矩陣,每次都要更改參考坐標(biāo),不過兩種方法本質(zhì)差別不大

java:
class Solution {
    public List spiralOrder(int[][] matrix) {
        List nums=new ArrayList();
        if (matrix.length==0||matrix[0].length==0)return nums ;
        int row=matrix.length-1,col=matrix[0].length-1,m=0,n=0,i=-1,tmp=0;

        while (row>=0&&col>=0){
            switch (i++%4){
                case 0:
                    for (tmp=0;tmp
注意點(diǎn):

? 先判斷是否為空數(shù)組,判斷條件順序不能顛倒。因?yàn)槿绻?matrix.length==0 判斷為true,則后面的 matrix[0].length==0 不會(huì)再判斷,即返回空數(shù)組;但是matrix[0].length==0 在前時(shí),如果輸入數(shù)組為空,matrix[0] 會(huì)報(bào)錯(cuò)因?yàn)閙atrix并沒有0號(hào)索引。

python3:
class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        if len(matrix)==0 or len(matrix[0])==0:return []
        nums=[];m=0;n=0;row=len(matrix)-1;col=len(matrix[0])-1;flag=0;
        for n in range(col+1):nums.append(matrix[m][n])
        while row>=0 and col>=0:
            if flag % 4 == 0:
                for i in range(row):
                    m+=1
                    nums.append(matrix[m][n])
                row -= 1
            elif flag % 4==1:
                for i in range(col):
                    n-=1
                    nums.append(matrix[m][n])
                col -= 1
            elif flag % 4 == 2:
                for i in range(row):
                    m-=1
                    nums.append(matrix[m][n])
                row -= 1
            elif flag % 4 == 3:
                for i in range(col):
                    n+=1
                    nums.append(matrix[m][n])
                col -= 1
            flag+=1
        return nums
注意點(diǎn):

? python沒有switch...case...語句。for循環(huán)可操作性很高,可以直接操作索引坐標(biāo)改變遍歷方式,不再贅述。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74994.html

相關(guān)文章

  • Leetcode 54:Spiral Matrix 螺旋矩陣

    摘要:螺旋矩陣給定一個(gè)包含個(gè)元素的矩陣行列,請(qǐng)按照順時(shí)針螺旋順序,返回矩陣中的所有元素。每次轉(zhuǎn)向或都會(huì)自減。循環(huán)可操作性很高,可以直接操作索引坐標(biāo)改變遍歷方式,不再贅述。 54:Spiral Matrix 螺旋矩陣 Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix i...

    venmos 評(píng)論0 收藏0
  • LeetCode[54] Spiral Matrix

    摘要:復(fù)雜度思路注意循環(huán)條件。代碼注意循環(huán)條件,要用而不是除以,因?yàn)榫葴?zhǔn)換問題只有一行或者一列的時(shí)候,就不要再繼續(xù)搜索了 LeetCode[54] Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order. Fo...

    YFan 評(píng)論0 收藏0
  • leetcode54 Spiral Matrix

    摘要:題目要求按照順時(shí)針方向旋轉(zhuǎn)訪問數(shù)組中的元素思路一按行遍歷,轉(zhuǎn)化為因?yàn)椴辉试S跳躍插入,也就是說如果插入的大于的,就會(huì)報(bào)出。思路二利用順序插入為了避免類型轉(zhuǎn)化帶來的不必要的性能下降,最好直接利用順序插入,一次遍歷數(shù)組。 題目要求 Given a matrix of m x n elements (m rows, n columns), return all elements of the ...

    琛h。 評(píng)論0 收藏0
  • [Leetcode] Spiral Matrix 螺旋矩陣

    摘要:代碼添加該圈第一行添加最后一列添加最后一行添加第一列如果是奇數(shù),加上中間那個(gè)點(diǎn)后續(xù)如果在中,給出的是和來代表行數(shù)和列數(shù),該如何解決和的本質(zhì)區(qū)別就是一個(gè)是任意長方形,一個(gè)是正方形,所以中不需要判斷最后一行或者最后一列。 Spiral Matrix I Given a matrix of m x n elements (m rows, n columns), return all ele...

    waruqi 評(píng)論0 收藏0
  • 6-9月技術(shù)文章匯總

    摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場景說說你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...

    miya 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

mochixuan

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<