zoukankan      html  css  js  c++  java
  • 滴滴2021后端开发岗笔试:

    生成一个斐波那契数列的螺旋二维数组

    import java.util.Scanner;

    public class didi3 {
       private static  int[] arr;
       public static void main(String[] args) {
           Scanner scan = new Scanner(System.in);
           int n= scan.nextInt();
           if(n==1){
               System.out.println(1);
               return ;
          }

           arr = getArray(n);
           int[][] res = generata(n, arr);
           for(int i=0;i<n;i++){
               for(int j=0;j<n;j++){
                   System.out.print(res[i][j]+" ");
              }
               System.out.println();
          }
      }

       public  static  int[][] generata(int n , int[] arr ){
           int l = 0,r = n-1, t = 0,b = n-1;
           int[][] mat = new int[n][n];
           int num = 1,tar = n * n ;
           while (num <= tar ){
               for(int i=l;i<=r;i++) {
                   mat[t][i] = arr[arr.length-num];
                   num++;
              }
               t++;
               for(int i=t;i<=b;i++){
                   mat[i][r] = arr[arr.length-num];
                   num++;
              }
               r--;
               for(int i=r;i>=l;i--){
                   mat[b][i] =  arr[arr.length-num];
                   num++;
              }
               b--;
               for(int i=b;i>=t;i--){
                   mat[i][l] =  arr[arr.length-num];
                   num++;
              }
               l ++;
          }
           return mat;
      }
       public static int[] getArray(int n ){
           if(n<1){return null;}
           int[] res =  new int[n * n];
           res[0] = 1;
           res[1] = 1;
           for(int i=2;i<res.length;i++){
               res[i] =  res[i-1] + res[i-2];
          }
           return res;
      }
    }

    这道题的难度其实不大,只是最开始我以为可以用递归可以实现,其实递归是不好实现的,因为递归要求每一步的操作都是相同的,都是类似的,但是这个题目就不满足要求。
  • 相关阅读:
    特征工程
    TensorFlow学习之路1-TensorFlow介绍
    深度学习中数据的augmentation
    求解矩阵特征值及特征向量
    Faster R-CNN
    python的浅拷贝和深拷贝
    AirSim的搭建和使用
    C++11 binary Tree
    win10 开启ubuntu
    c++ priority_queue
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/13543954.html
Copyright © 2011-2022 走看看