19、順時(shí)針打印矩陣

題目描述
輸入一個(gè)矩陣豆拨,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字浦旱,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數(shù)字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

一開始以為是n*n的矩陣九杂,寫出了如下代碼:

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> list = new ArrayList<>();
        int row = matrix.length;
        int col = matrix[0].length;
        int rowCount = 0;
        int colCount = col-1;
        int revRowCount = row-1;
        int revColCount = 0;
        while(rowCount<=revRowCount&&colCount>=revColCount){
            //打印頂部一行
            for(int i=revColCount; i<=colCount; i++){
                list.add(matrix[rowCount][i]);
            }
            rowCount++;
            
            //打印右側(cè)一列
            for(int i=rowCount; i<=revRowCount; i++){
                list.add(matrix[i][colCount]);
            }
            colCount--;
            
            
            //打印底部一行
            for(int i=colCount; i>=revColCount; i--){
                list.add(matrix[revRowCount][i]);
            }
            revRowCount--;         
            
            //打印左側(cè)一列
            for(int i=revRowCount; i>=rowCount; i--){
                list.add(matrix[i][revColCount]);
            }
            revColCount++;
        }
        return list;
    }
}

在測試n*1矩陣的時(shí)候沒有通過颁湖,因?yàn)樵谝淮窝h(huán)時(shí)至少打印兩行、兩列例隆。如下代碼加了對(duì)矩陣只有一行或只有一列的判斷甥捺。

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> list = new ArrayList<>();
        int row = matrix.length;
        int col = matrix[0].length;
        int rowCount = 0;
        int colCount = col-1;
        int revRowCount = row-1;
        int revColCount = 0;
        while(rowCount<=revRowCount&&colCount>=revColCount){
            //打印頂部一行
            for(int i=revColCount; i<=colCount; i++){
                list.add(matrix[rowCount][i]);
            }
            rowCount++;
            
            //打印右側(cè)一列
            for(int i=rowCount; i<=revRowCount; i++){
                list.add(matrix[i][colCount]);
            }
            colCount--;
            
            
            //打印底部一行,先排除只有一行的情況
            if(rowCount>revRowCount){
                break;
            }
            for(int i=colCount; i>=revColCount; i--){
                list.add(matrix[revRowCount][i]);
            }
            revRowCount--;         
            
            //打印左側(cè)一列镀层,先排除只有一列的情況
            if(colCount<0){
                break;
            }
            for(int i=revRowCount; i>=rowCount; i--){
                list.add(matrix[i][revColCount]);
            }
            revColCount++;
        }
        return list;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末镰禾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唱逢,更是在濱河造成了極大的恐慌吴侦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坞古,死亡現(xiàn)場離奇詭異备韧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)痪枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門织堂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奶陈,你說我怎么就攤上這事易阳。” “怎么了吃粒?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵潦俺,是天一觀的道長。 經(jīng)常有香客問我,道長黑竞,這世上最難降的妖魔是什么捕发? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮很魂,結(jié)果婚禮上扎酷,老公的妹妹穿的比我還像新娘。我一直安慰自己遏匆,他們只是感情好法挨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幅聘,像睡著了一般凡纳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帝蒿,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天荐糜,我揣著相機(jī)與錄音,去河邊找鬼葛超。 笑死暴氏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绣张。 我是一名探鬼主播答渔,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侥涵!你這毒婦竟也來了沼撕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤芜飘,失蹤者是張志新(化名)和其女友劉穎务豺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燃箭,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冲呢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了招狸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敬拓。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖裙戏,靈堂內(nèi)的尸體忽然破棺而出乘凸,到底是詐尸還是另有隱情,我是刑警寧澤累榜,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布营勤,位于F島的核電站灵嫌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏葛作。R本人自食惡果不足惜寿羞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赂蠢。 院中可真熱鬧绪穆,春花似錦、人聲如沸虱岂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽第岖。三九已至难菌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔑滓,已是汗流浹背郊酒。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留键袱,地道東北人猎塞。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像杠纵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钩骇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 順時(shí)針打印矩陣 題目描述 輸入一個(gè)矩陣比藻,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字,例如倘屹,如果輸入如下矩陣: ...
    echoVic閱讀 713評(píng)論 0 2
  • 題目描述輸入一個(gè)矩陣纽匙,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字务蝠,例如,如果輸入如下矩陣: 1 2 3 4 5...
    juexin閱讀 144評(píng)論 0 0
  • 曾經(jīng)有一份美好的愛情放在我的面前我沒有珍惜院喜。等到失去后才后悔莫及。如果可以再對(duì)小李說晕翠。毛欣想說喷舀。這輩子無緣再牽手。...
    毛欣與小李閱讀 2,613評(píng)論 0 13
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,419評(píng)論 0 17
  • 全目錄 |【我只是不想成為自己不喜歡的人】 上一章 |我只是不想成為自己不喜歡的人(2) 軍訓(xùn)徹底結(jié)束的一天晚上硫麻,...
    溫玉言閱讀 938評(píng)論 1 7