国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

二維數(shù)組的旋轉(zhuǎn)賦值(遞歸)

kun_jian / 1155人閱讀

摘要:如圖所示圖片描述輸出結(jié)果輸入二維數(shù)組長度創(chuàng)建二維數(shù)組賦值遍歷所賦的值控制轉(zhuǎn)向?yàn)橛覟橄聻樽鬄樯霞o(jì)錄函數(shù)調(diào)用次數(shù)若超出數(shù)組轉(zhuǎn)向若當(dāng)前點(diǎn)沒有走過賦值輸出到最后一個(gè)數(shù)跳出循環(huán)轉(zhuǎn)向向右走向下走向左走向上走循環(huán)轉(zhuǎn)向

描述

給定一個(gè)h行h列的整數(shù)數(shù)組array,要求從array[0][0]元素開始,按回形從外向內(nèi)順時(shí)針順序賦值整個(gè)數(shù)組。如圖所示:
![圖片描述][1]
輸出結(jié)果:4 4
    1  2  3  4
    12 13 14 5
    11 16 15 6
    10 9  8  7

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int h = scanner.nextInt();//輸入二維數(shù)組長度
        int[][] arr = new int[h][h];//創(chuàng)建二維數(shù)組
        setWay(arr,0,0);//賦值
        for (int[] p : arr) {//遍歷
            for (int p1 : p) {
                System.out.printf("%-4d",p1);
            }
            System.out.println();
        }
        System.out.println(t);
    }
    static int p = 1;//所賦的值
    static int f = 0;//控制轉(zhuǎn)向  0為右 1為下 2為左 3為上
    static int t = 0;//紀(jì)錄函數(shù)調(diào)用次數(shù)
    public static boolean setWay(int[][]map,int i,int j){

            if(i==map.length || j ==map.length || i == -1 || j == -1){//若超出數(shù)組
                f = (f+1)%4;//轉(zhuǎn)向
                t++;
                return false;
            }

            if (map[i][j] == 0) {// 若當(dāng)前點(diǎn)沒有走過
                map[i][j] = p;//賦值
                p++;
                while(p != map.length*map.length+1)//輸出到最后一個(gè)數(shù)跳出循環(huán)轉(zhuǎn)向
                    switch(f){
                    case 0:
                        if (setWay(map, i, j + 1)) {//向右走
                            return true;
                        }
                        break;
                    case 1:
                        if (setWay(map, i+1, j )) {// 向下走
                            return true;
                        }
                        break;
                    case 2:
                        if (setWay(map, i , j-1)) {// 向左走
                            return true;
                        } 
                        break;
                    case 3:
                         if (setWay(map, i-1, j)) {// 向上走
                                return true;
                            }
                        break;
                    }
            }
            f = (f+1)%4;//循環(huán)轉(zhuǎn)向
            t++;
            return false;
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/77877.html

相關(guān)文章

  • C語言第三期(1萬字函數(shù)-數(shù)組-操作符詳解)

    摘要:形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動銷毀了。函數(shù)調(diào)用傳值調(diào)用函數(shù)的形參和實(shí)參分別占有不同內(nèi)存塊,對形參的修改不會影響實(shí)參。函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。它其實(shí)就數(shù)組訪問的操作符。 ...

    Jeff 評論0 收藏0
  • 21-11-23

    摘要:這里執(zhí)行是錯(cuò)誤的,這樣賦值也是錯(cuò)誤的因?yàn)槭莻€(gè)不可知的表示,只存在而且它們分別是指針變量可以用來存放變量地址。 數(shù)組 1、數(shù)組認(rèn)知: a、靜態(tài)分配空間(int a[1...

    不知名網(wǎng)友 評論0 收藏0
  • TypeScript實(shí)現(xiàn)數(shù)組相關(guān)簡單算法

    摘要:本文只是簡單理解算法,并不會深入的討論。大部分來自數(shù)組部分。如果數(shù)組中每個(gè)元素都不相同,則返回。示例輸入輸出加給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。盡量減少操作次數(shù)。 算法(algorithm),在數(shù)學(xué)(算學(xué))和計(jì)算機(jī)科學(xué)之中,為任何良定義的具體計(jì)算步驟的一個(gè)序列,常用于計(jì)算、數(shù)據(jù)處理和自動推理。精確而言,算法是一個(gè)表示為有限長列表的有效方法。算法應(yīng)包含清晰...

    cloud 評論0 收藏0
  • LeetCode 精選TOP面試題【51 ~ 100】

    摘要:有效三角形的個(gè)數(shù)雙指針最暴力的方法應(yīng)該是三重循環(huán)枚舉三個(gè)數(shù)字。總結(jié)本題和三數(shù)之和很像,都是三個(gè)數(shù)加和為某一個(gè)值。所以我們可以使用歸并排序來解決這個(gè)問題。注意因?yàn)闅w并排序需要遞歸,所以空間復(fù)雜度為 ...

    Clect 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<