《美团点评》编程题---有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印
生活随笔
收集整理的這篇文章主要介紹了
《美团点评》编程题---有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:有一個二維數組(n*n),寫程序實現從右上角到左下角沿主對角線方向打印。
給定一個二位數組arr及題目中的參數n,請返回結果數組。
測試樣例:
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] , 4
返回:[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13]
測試樣例的數組如下:
import java.util.*; public class Printer {public int[] arrayPrint(int[][] arr, int n) {int [] result = new int[n*n];int x=0;List<Integer> list = new ArrayList<>();for(int y=n-1;y>=0;y--){//x=0 y--遍歷int x2=x;int y2=y;if(x2!=0&&y2!=0){list.add(arr[x2][y2]);}if(x2!=0){y2--;}while (x2<n&&(y2>=0&&y2<n)){list.add(arr[x2][y2]);x2++;y2++;}}int y=0;for(int i=1;i<n;i++){//y=0 x++遍歷int x3=i;int y3=y;list.add(arr[x3][y3]);x3++;y3++;while (x3<n&&(y3>=0&&y3<n)){list.add(arr[x3][y3]);x3++;y3++;}}for(int i=0;i<list.size();i++){result[i]=list.get(i);}return result;} }總結
以上是生活随笔為你收集整理的《美团点评》编程题---有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》非递归法判定二叉树是否
- 下一篇: 《剑指offer》给定一颗二叉搜索树,请