昨晚那種方法做出來之後,感覺可讀性不好,也就是一般情況下很難看懂**,所以接近睡著時我又想到乙個辦法比較簡單,而且易懂,所以寫這篇部落格和大家分享一下吧(具體就圍繞下圖這個核心問題來做)
其實我的想法很簡單,就是借助鍊錶來實現,因為鍊錶刪除功能方便,直接pollfirst() polllast();
1、先取出來最上面一排,並移除;
2、取出最又一排並移除;
3、倒敘取出最下面一排並移除;
4、倒敘取出最左面一排並移除;
每次取出來後就刪除,當刪除一圈後又是乙個新的二維;然後直接遞迴就完事兒了!
(下面貼上**)
public static void main(string args) ,,,,};
for (int i = 0; i < array.length; i++)
linkedlists.add(linkedlist);
}// 列印原來的資料
system.out.println("列印提供的原資料:" + linkedlists.tostring());
linkedlist reslist = new linkedlist();
printbycycle(linkedlists, reslist);
// 列印順時針獲取的資料
system.out.println("順時針列印原資料:" + reslist);
}
private static void printbycycle(linkedlist> sourcelist, listtargetlist)
});//從右到左 橫向
linkedlistlastlinked = sourcelist.polllast();
while (lastlinked!=null && lastlinked.size()>0)
//從下到上 豎向
for (int i = sourcelist.size() - 1 ; i >=0 ; i--)
}//遞迴
if(sourcelist.size()>0)
}
最後結果如下:
華為機試題分享
華為機試題分享 沒有在規定的時間內完成作答,還是挺遺憾的,回想了一下,其實理清楚思路還是很簡單的,只是需要注意的點比較多。題目內容 在輸入字串中,找出一段連續的數字串,字串按照 進行分割,要求 的左右兩端全是數字,儲存並找到最大值 例如ahjshjj1552.ss5235.3662d.588523....
華為機試題
今天去華為機試,感覺是再謹慎都不為過啊!zc前一天晚上還跟我強調了判空,記憶體釋放。前兩題都是基本題,後面一題不會。1 輸入兩個數 反轉相加的和輸出。2 三天打漁兩天曬網 從1990 年1月1日開始 打漁輸出fishing 曬網輸出sleeping 我因為printf的是fishing sleepi...
華為機試題
通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...