zoukankan      html  css  js  c++  java
  • 生产螺旋二维数组

    public class SpiralArray {
    
        public static int[][] generateSpiralArray(final int x, final int y) {
            int[][] blanks = new int[x][y];
            int direct = 0;
            int num = 0;
            int posX = 0, posY = -1;
            int widthlen = y;
            int heightlen = x;
            int xTimes = heightlen;
            int yTimes = widthlen;
            while (true) {
                if (num == x * y)
                    break;
                num++;
                switch (direct) {
                case 0:
                    if (--yTimes == 0) {
                        direct = 1;
                        heightlen--;
                        posY++;
                        xTimes = heightlen;
                        break;
                    }
                    posY++;
                    break;
                case 1:
                    if (--xTimes == 0) {
                        direct = 2;
                        widthlen--;
                        posX++;
                        yTimes = widthlen;
                        break;
                    }
                    posX++;
                    break;
                case 2:
                    if (--yTimes == 0) {
                        direct = 3;
                        heightlen--;
                        posY--;
                        xTimes = heightlen;
                        break;
                    }
                    posY--;
                    break;
                case 3:
                    if (--xTimes == 0) {
                        direct = 0;
                        widthlen--;
                        posX--;
                        yTimes = widthlen;
                        break;
                    }
                    posX--;
                    break;
                }
                blanks[posX][posY] = num;
    printArray(blanks, x, y); }
    return blanks; } priavte static void printArray(final int[][] array, final int x, final int y) { for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { System.out.printf("%-5d", blanks[i][j]); }
    System.out.println(); }

              try {
                  Thread.sleep(100);
              } catch (InterruptedException e) {}

              System.out.println();

        }
    
        public static void main(String[] args) {
            int x = 5, y = 4;
            int[][] array = generateSpiralArray(x, y);
            printArray(array, x, y);
        }
    
    }
  • 相关阅读:
    编程 判断 是否满足条件 的 验证代码。
    Javascript作用域详解。
    DateTable To Json
    反射_获取字段的Description信息
    C# Json格式
    jQuery选择器
    SQL日期格式转换
    【转载】#pragma once与#ifndef
    C++中的左值与右值
    HTML、CSS基础知识
  • 原文地址:https://www.cnblogs.com/zhonghan/p/3216848.html
Copyright © 2011-2022 走看看