1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        leetcode|被一道美團(tuán)面試題轉(zhuǎn)暈

        共 848字,需瀏覽 2分鐘

         ·

        2020-07-31 18:22

        今天為大家講解 LeetCode 第 48 題,是一道中等難度的題目。曾有讀者面試美團(tuán)被問(wèn)到過(guò),來(lái)搞一波~

        題目描述

        給定一個(gè) n × n 的二維矩陣表示一個(gè)圖像。

        將圖像順時(shí)針旋轉(zhuǎn) 90 度。

        說(shuō)明:

        你必須在原地旋轉(zhuǎn)圖像,這意味著你需要直接修改輸入的二維矩陣。請(qǐng)不要使用另一個(gè)矩陣來(lái)旋轉(zhuǎn)圖像。

        示例 1:

        給定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ],

        原地旋轉(zhuǎn)輸入矩陣,使其變?yōu)? [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2:

        給定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ],

        原地旋轉(zhuǎn)輸入矩陣,使其變?yōu)? [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ]

        來(lái)源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/rotate-image 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

        解題思路

        這道題有點(diǎn)難度,我之前也沒(méi)怎么了解,這旋轉(zhuǎn)真是把我轉(zhuǎn)暈了,看的別人的題解慢慢想想畫(huà)畫(huà)的虧弄懂了。

        這里借用下@讀書(shū)就是賺錢(qián) ?的現(xiàn)成圖,我就不畫(huà)了,如侵必刪。

        圖片源自@讀書(shū)就是賺錢(qián)
        圖片源自@讀書(shū)就是賺錢(qián)

        理解了思路但是寫(xiě)代碼還是很多細(xì)節(jié)容易出錯(cuò),不清楚的可以debug調(diào)試看看

        //go
        func?rotate(matrix?[][]int)??{
        ?length?:=?len(matrix[0])
        ?var?tmp?int
        ?for?start,end?:=?0,?length-1;?start?//層的控制
        ??for?s,?e?:=?start,?end;?s?//某一層的四個(gè)點(diǎn)的旋轉(zhuǎn)
        ???tmp?=?matrix[start][s]?//記錄左上
        ???matrix[start][s]?=?matrix[e][start]?//左上=左下
        ???matrix[e][start]?=?matrix[end][e]?//左下=右下
        ???matrix[end][e]?=?matrix[s][end]?//右下=右上
        ???matrix[s][end]?=?tmp?//右上=左上
        ???s++
        ???e--
        ??}
        ??start++
        ??end--
        ?}
        }
        //java
        class?Solution?{
        ????public?void?rotate(int[][]?matrix)?{
        ????????int?temp=-1;
        ????????for(int?start=0,end=matrix[0].length-1;start????????????for(int?s=start,e=end;s????????????????temp=matrix[start][s];
        ????????????????matrix[start][s]=matrix[e][start];
        ????????????????matrix[e][start]=matrix[end][e];
        ????????????????matrix[end][e]=matrix[s][end];
        ????????????????matrix[s][end]=temp;
        ????????????};
        ????????};
        ????}
        }

        另外還有個(gè)思路:向右旋轉(zhuǎn)90°,可以理解為先上下翻轉(zhuǎn),再沿對(duì)角線翻轉(zhuǎn)(或者先沿對(duì)角線翻轉(zhuǎn),再左右翻轉(zhuǎn)

        圖片源自@小浩算法

        這個(gè)代碼就不給出,留給大家當(dāng)個(gè)練習(xí)吧?

        鄭重聲明:

        所展示代碼已通過(guò) LeetCode 運(yùn)行通過(guò),請(qǐng)放心食用~



        推薦閱讀



        學(xué)習(xí)交流 Go 語(yǔ)言,掃碼回復(fù)「進(jìn)群」即可


        站長(zhǎng) polarisxu

        自己的原創(chuàng)文章

        不限于 Go 技術(shù)

        職場(chǎng)和創(chuàng)業(yè)經(jīng)驗(yàn)


        Go語(yǔ)言中文網(wǎng)

        每天為你

        分享 Go 知識(shí)

        Go愛(ài)好者值得關(guān)注



        瀏覽 54
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品久久久久久久久久久久 | 欧美日韩一区二区三区 | 久久久久久亚洲欧洲 | 一线天嫩逼视频 | 国产精品嫩草在线观看 | 国产又粗又大又硬又长又爽看视频 | 人人澡人人添人人爽一区二区 | 和老女人操逼视频 | 国模静欣大尺度啪啪人体 | 豆花视频黄网站在线观看 |