91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中怎么實現一個打印螺旋矩陣算法

發布時間:2021-07-22 16:14:53 來源:億速云 閱讀:134 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關Java中怎么實現一個打印螺旋矩陣算法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

思路:使用一個二維數組存放數據,數組初始化為0,數組共有n平方個元素,因為是從1開始,所以元素的值是從1到n×n。按照上面的路線從1開始遍歷一遍填入數據,每填入一個數據時后,判斷邊界和方向(說明,任意長度和寬度都可以使用這個思路,本例使用N*N的矩陣說明)。直接上代碼了:

package study.haishen.com;/** * @author Administrator * */public class SpiralMatrix {    /**     * @param n n階     * @return     */    public int[][] createMatrix(int n)    {        int[][] matrix = new int[n][n];//n*n的二維數組,初始元素值都為0        int right = 1, down = 2, left = 3, up = 4;//分別表示右下左上四個方向        int direction = right;        int numb = n * n;//n階矩陣,共有n×n個數        int i = 0, j = 0;        for (int p = 1; p <= numb; p++)        {            matrix[i][j] = p;            //判斷方向向右的情況            if(direction == right)            {                //如果當前位置的右面位置在右邊界內且值還是初始值,則行不變,列號向右移動一位                if (j + 1 < n && matrix[i][j + 1] == 0)                {                    j++;                } else {//如果超出右邊邊界,或者右面的元素已經被修改過,則向下移動一行,且將方向改為向下                    i++;                    direction = down;                    continue;                }            }            //判斷方向向下的情況            if (direction == down)            {                //如果當前位置的下面位置在下邊界內且值還是初始值,則列不變,行號向下移動一位                if (i + 1 < n && matrix[i + 1][j] == 0)                {                    i++;                } else {//如果超出下邊界,或者下面的元素已經被修改過,則向左移動一行,且將方向改為向左                    j--;                    direction = left;                    continue;                }            }            //判斷方向向左的情況            if (direction == left)            {                //如果當前位置的左面位置在左邊界內且值還是初始值,則行不變,列號向左移動一位                if (j - 1 >= 0 && matrix[i][j - 1] == 0)                {                    j--;                } else {//如果超出左邊界,或者左面的元素已經被修改過,則向上移動一行,且將方向改為向上                    i--;                    direction = up;                    continue;                }            }            //判斷方向向上的情況            if (direction == up)            {                //如果當前位置的上面位置在上邊界內且值還是初始值,則列不變,行號向左移動一位                if (i - 1 >= 0 && matrix[i - 1][j] == 0)                {                    i--;                } else {//如果超出上邊界,或者上面的元素已經被修改過,則向右移動一列,且將方向改為向右                    j++;                    direction = right;                    continue;                }            }        }        return matrix;    }    /**     * 測試     * @param args     */    public static void main(String[] args) {        int n = 10;        SpiralMatrix s = new SpiralMatrix();        int[][] data = s.createMatrix(n);        for (int i = 0; i < n; i++)        {            for (int j = 0; j < n; j++)            {                System.out.print(data[i][j] + " ");            }            System.out.println();        }    }}

以上就是Java中怎么實現一個打印螺旋矩陣算法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰镇市| 清镇市| 大荔县| 延寿县| 潮州市| 新野县| 兰坪| 孟村| 古蔺县| 顺昌县| 星座| 上林县| 兴隆县| 株洲县| 谢通门县| 定州市| 三门县| 汕尾市| 深圳市| 澜沧| 克拉玛依市| 黄大仙区| 汉阴县| 惠水县| 洛阳市| 临汾市| 江津市| 公主岭市| 托克逊县| 凯里市| 奉贤区| 固原市| 湘乡市| 永胜县| 杭锦旗| 南丹县| 富平县| 左云县| 瑞安市| 革吉县| 贵南县|