zoukankan      html  css  js  c++  java
  • 螺旋矩阵算法

    //螺旋输出1-25
    public class Sequence {
    public static void main(String[] args) {
    int n = 5;
    // 0:向右,1:向下,2:向左,3:向上
    int direction = 0;
    // 行,列
    int row = 0, col = 0;
    int num = 0;

    int[] array = new int[n * n];
    while (array[row * n + col] == 0) {
    num++;
    array[row * n + col] = num;
    switch (direction) {
    case 0:
    col++;
    break;
    case 1:
    row++;
    break;
    case 2:
    col--;
    break;
    case 3:
    row--;
    break;
    }
    if (row == n || col == n || row == -1 || col == -1
    || array[row * n + col] != 0) {
    direction++;
    if (direction == 4)
    direction = 0;
    switch (direction) {
    case 0:
    row++;
    col++;
    break;
    case 1:
    row++;
    col--;
    break;
    case 2:
    row--;
    col--;
    break;
    case 3:
    row--;
    col++;
    break;
    }
    }
    }

    for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
    System.out.printf("%-3s", array[i * n + j]);
    }
    System.out.println();
    }
    }

    }

    -----------------------------------------------------------

    //矩阵转换
    public class TestArray {
    public static void main(String[] args) {
    int array[][] = { { 22, 18, 36 }, { 27, 34, 58 }, { 12, 51, 32 },
    { 14, 52, 64 } }; // 创建一个4行3列的二维数组
    int brray[][] = new int[3][4]; // 创建一个3行4列的数组,用于接收转置后的矩阵
    System.out.println("原型矩阵例如以下:");
    for (int i = 0; i < array.length; i++) { // 遍历array数组中的元素
    for (int j = 0; j < array[i].length; j++) {
    System.out.print(array[i][j] + " ");
    }
    System.out.println();
    }
    for (int i = 0; i < array.length; i++) { // 此时的i是array数组的行,brray的列
    for (int j = 0; j < brray.length; j++) { // 此时的j是array数组的列,brray的行
    brray[j][i] = array[i][j]; // 将array数组中的第i行j列的元素赋给brray数组中的j行i列
    }
    }
    System.out.println(" 转置后的矩阵例如以下:");
    for (int i = 0; i < brray.length; i++) { // 遍历转置后brray数组中的元素
    for (int j = 0; j < brray[i].length; j++) {
    System.out.print(brray[i][j] + " ");
    }
    System.out.println();
    }
    }
    }

  • 相关阅读:
    通过kettle数据导入mysql时,空值的处理在插入mysql时,会自动转转换为null值,无法插入
    centos 安装配置kettle
    centos服务器安装配置Postgre9.6
    python 获取随机字母
    defaultdict & Counter
    PIL 安装及使用
    python之yield和Generator
    Win7系统中用anaconda配置tensorflow运行环境
    #基础概念#之tensor
    python 生成特定间隔数列的方法
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5171519.html
Copyright © 2011-2022 走看看