48. Rotate Image

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:
Could you do this in-place?
5/17/19 店面

/*
The idea was firstly transpose the matrix and then flip it symmetrically.
For instance,

1  2  3             
4  5  6
7  8  9
after transpose, it will be swap(matrix[i][j], matrix[j][i])
轉置矩陣
1  4  7
2  5  8
3  6  9
Then flip the matrix horizontally. (水平翻轉)
(swap(matrix[i][j], matrix[i][matrix.length-1-j])

7  4  1
8  5  2
9  6  3
 */
    public void rotate(int[][] matrix) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = i; j < matrix[0].length; j++) {
                int temp = 0;
                temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
        
        
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix.length/2 ;j++) {
                int temp = 0;
                temp = matrix[i][j];
                matrix[i][j] = matrix[i][matrix.length -1 -j];
                matrix[i][matrix.length - 1 -j] = temp;
            }
        }
        
    }

第二種思路

    /*
 * clockwise rotate
 * first reverse up to down, then swap the symmetry 
 * 1 2 3     7 8 9     7 4 1
 * 4 5 6  => 4 5 6  => 8 5 2
 * 7 8 9     1 2 3     9 6 3
*/


/*
 * anticlockwise rotate
 * first reverse left to right, then swap the symmetry
 * 1 2 3     3 2 1     3 6 9
 * 4 5 6  => 6 5 4  => 2 5 8
 * 7 8 9     9 8 7     1 4 7
*/
// Ref: https://leetcode.com/discuss/20589/a-common-method-to-rotate-the-image
    // test case: [[1,2,3], [4,5,6],[7,8,9]]
    public void rotate(int[][] matrix) {
        if(matrix.length <=1) return;
        int m = matrix.length, n = matrix[0].length;
        swapRows(matrix);
            
        // [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]    
        for (int i=0; i < m; ++i) {
            for (int j= i+1; j< n; ++j) {
                  int temp = matrix[i][j];
                  matrix[i][j] = matrix[j][i];
                  matrix[j][i] = temp;
            }
        }
    }
    
    public void  swapRows(int[][]  A) {
        // swap rows
        int len = A.length;
        for (int i=0; i< len/2; i++) {
           int[] tmp = A[i];
            A[i] = A[len-1-i];
            A[len-1-i] = tmp;
        }
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末凤价,一起剝皮案震驚了整個濱河市锅移,隨后出現(xiàn)的幾起案子番挺,更是在濱河造成了極大的恐慌朱转,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鸠蚪,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門茅信,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盾舌,“玉大人,你說我怎么就攤上這事蘸鲸⊙矗” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵棚贾,是天一觀的道長窖维。 經(jīng)常有香客問我,道長妙痹,這世上最難降的妖魔是什么铸史? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮怯伊,結果婚禮上琳轿,老公的妹妹穿的比我還像新娘。我一直安慰自己耿芹,他們只是感情好崭篡,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吧秕,像睡著了一般琉闪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砸彬,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天颠毙,我揣著相機與錄音,去河邊找鬼砂碉。 笑死蛀蜜,一個胖子當著我的面吹牛,可吹牛的內容都是我干的增蹭。 我是一名探鬼主播滴某,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼滋迈!你這毒婦竟也來了霎奢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤饼灿,失蹤者是張志新(化名)和其女友劉穎椰憋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赔退,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了硕旗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窗骑。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖漆枚,靈堂內的尸體忽然破棺而出创译,到底是詐尸還是另有隱情,我是刑警寧澤墙基,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布软族,位于F島的核電站,受9級特大地震影響残制,放射性物質發(fā)生泄漏立砸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一初茶、第九天 我趴在偏房一處隱蔽的房頂上張望颗祝。 院中可真熱鬧,春花似錦恼布、人聲如沸螺戳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倔幼。三九已至,卻和暖如春爽待,著一層夾襖步出監(jiān)牢的瞬間损同,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工堕伪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留揖庄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓欠雌,卻偏偏與公主長得像蹄梢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子富俄,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容