摘要:如圖所示圖片描述輸出結(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
摘要:形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動銷毀了。函數(shù)調(diào)用傳值調(diào)用函數(shù)的形參和實(shí)參分別占有不同內(nèi)存塊,對形參的修改不會影響實(shí)參。函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。它其實(shí)就數(shù)組訪問的操作符。 ...
摘要:這里執(zhí)行是錯(cuò)誤的,這樣賦值也是錯(cuò)誤的因?yàn)槭莻€(gè)不可知的表示,只存在而且它們分別是指針變量可以用來存放變量地址。 數(shù)組 1、數(shù)組認(rèn)知: a、靜態(tài)分配空間(int a[1...
摘要:本文只是簡單理解算法,并不會深入的討論。大部分來自數(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)包含清晰...
摘要:有效三角形的個(gè)數(shù)雙指針最暴力的方法應(yīng)該是三重循環(huán)枚舉三個(gè)數(shù)字。總結(jié)本題和三數(shù)之和很像,都是三個(gè)數(shù)加和為某一個(gè)值。所以我們可以使用歸并排序來解決這個(gè)問題。注意因?yàn)闅w并排序需要遞歸,所以空間復(fù)雜度為 ...
閱讀 3043·2021-11-25 09:43
閱讀 1625·2021-11-24 11:15
閱讀 2358·2021-11-22 15:25
閱讀 3500·2021-11-11 16:55
閱讀 3239·2021-11-04 16:10
閱讀 2773·2021-09-14 18:02
閱讀 1685·2021-09-10 10:50
閱讀 1070·2019-08-29 15:39