欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)LeetCode(54.螺旋矩陣)

 更新時(shí)間:2021年07月09日 09:51:19   作者:莫少俠9527  
這篇文章主要介紹了Java實(shí)現(xiàn)LeetCode(螺旋矩陣),本文列出題目和寫題的思路。給出完整的解法代碼,需要的朋友可以參考下

LeetCode54. 螺旋矩陣 java實(shí)現(xiàn)

題目

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

示例 1:

輸入:

 [

  [ 1, 2, 3 ],

  [ 4, 5, 6 ],

  [ 7, 8, 9 ]

 ]

 輸出: [1,2,3,6,9,8,7,4,5]

示例 2:

輸入:

 [

   [1, 2, 3, 4],

   [5, 6, 7, 8],

   [9,10,11,12]

 ]

輸出: [1,2,3,4,8,12,11,10,9,5,6,7]

思路

找出每個(gè)點(diǎn)的坐標(biāo),每個(gè)點(diǎn)每次延順時(shí)針分別為右、下、左、上四個(gè)方向走一個(gè)位置,維護(hù)一個(gè)方向變量,不同方向時(shí)做相應(yīng)的邊界判斷。每次遇到邊界,必定改變方向,縮短原邊界大小。

解法

public List<Integer> spiralOrder(int[][] matrix) {
        ArrayList<Integer> order = new ArrayList<>();

        if (matrix.length == 0 || matrix[0].length == 0) {
            return order;
        }
        int m = matrix.length;
        int n = matrix[0].length;
        int len = m * n;
        int row = 0;
        int col = 0;
        int leftMin = 0;
        //每次走上下左右四個(gè)方向,一次只走一格
        //注意點(diǎn),因?yàn)槭菑模?,1)開始走的,所以上界最小row是第二行1
        int topMin = 1;
        //初始方向值
        int k = 0;
        int[][] dir = {
                {1, 0, -1, 0},
                {0, 1, 0, -1}
        };
        for (int i = 0; i < len; i++) {
            order.add(matrix[row][col]);
            col += dir[0][k % 4];
            row += dir[1][k % 4];
            switch (k % 4) {
                case 0:
                    //右
                    if (col > n - 1) {
                        col = n - 1;
                        row++;
                        k++;
                        n--;
                    }
                    break;
                case 1:
                    //下
                    if (row > m - 1) {
                        row = m - 1;
                        col--;
                        k++;
                        m--;
                    }
                    break;
                case 2:
                    //左
                    if (col < leftMin) {
                        col = leftMin;
                        leftMin++;
                        row--;
                        k++;
                    }
                    break;
                case 3:
                    //上
                    if (row < topMin) {
                        row = topMin;

                            topMin++;

                        col++;
                        k++;
                    }
                    break;
            }


        }
        return order;
    }

結(jié)果

2ms 戰(zhàn)勝99.74%

到此這篇關(guān)于Java實(shí)現(xiàn)LeetCode(螺旋矩陣)的文章就介紹到這了,更多相關(guān)Java實(shí)現(xiàn)螺旋矩陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    本文主要介紹了Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • 使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑

    使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑

    這篇文章主要介紹了使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑,需要的朋友可以參考下
    2018-09-09
  • spring?cloud?gateway中netty線程池小優(yōu)化

    spring?cloud?gateway中netty線程池小優(yōu)化

    這篇文章主要介紹了spring?cloud?gateway中netty線程池小優(yōu)化技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • maven中心倉庫OSSRH使用簡介(推薦)

    maven中心倉庫OSSRH使用簡介(推薦)

    這篇文章主要介紹了maven中心倉庫OSSRH使用簡介,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    這篇文章主要介紹了Mybatis批量插入,返回主鍵ID不成功,巨坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java的package和import機(jī)制原理解析

    java的package和import機(jī)制原理解析

    這篇文章主要介紹了java的package和import機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Springboot如何解決前端請求跨域的問題

    Springboot如何解決前端請求跨域的問題

    這篇文章主要介紹了Springboot如何解決前端請求跨域的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spring Boot中@RequestParam參數(shù)的5種情況說明

    Spring Boot中@RequestParam參數(shù)的5種情況說明

    這篇文章主要介紹了Spring Boot中@RequestParam參數(shù)的5種情況說明,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java處理日期的工具類DateUtil

    java處理日期的工具類DateUtil

    這篇文章主要為大家詳細(xì)介紹了java處理日期的工具類DateUtil,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Mybatis注解sql時(shí)出現(xiàn)的一個(gè)錯(cuò)誤及解決

    Mybatis注解sql時(shí)出現(xiàn)的一個(gè)錯(cuò)誤及解決

    這篇文章主要介紹了Mybatis注解sql時(shí)出現(xiàn)的一個(gè)錯(cuò)誤及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論