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();
    }
    }
    }

  • 相关阅读:
    git 备忘录
    模拟HTTP协议接收请求并返回信息
    微信公众号支付回调页面处理asp.net
    WinForm下判断文件和文件夹是否存在
    C# 如何判断ie版本号和获取注册表中的信息
    【转】GDI+中发生一般性错误的解决办法
    c# winform 获取当前程序运行根目录
    模拟按下某快捷键:keybd_event使用方法
    如何使用存储过程来实现分页功能
    用ASP.NET实现下载远程图片保存到本地的方法 保存抓取远程图片的方法
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5171519.html
Copyright © 2011-2022 走看看