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

  • 相关阅读:
    leetcode_138复制带随机指针的链表
    minSTL
    LLVM
    STL基础_迭代器
    mysql数据库表清空后id如何从1开始自增
    explain用法和结果分析
    MySQL多表查询与子查询
    数据结构与算法笔记
    MySQL数据库的SQL语言与视图
    mysql忘记密码解决方案
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5171519.html
Copyright © 2011-2022 走看看