В этой статье описывается метод реализации номеров выходных циклов (спиральная матрица) в Java. Поделитесь этим для вашей ссылки, следующим образом:
Я видел это раньше, но я не сделал этого; Я видел тебя до свидания с форумом в тот день, и пришло вдохновение. Это так удивительно
Сложность, кажется, о (n)
Сохраните это
Пакет Demo; открытый класс snakematrixdemo {public static void main (string [] args) {int m = 5;/* row*/int n = 5;/* column*/int [] [] pos = new int [m] [n];/* position*//*** Структура позиции следующая: [0] [0], [0] [1], [0] [1], [0] [2], [0] [3], [0] [4] * * [1] [0], [1] [1], [1] [2], [1] [3], [1] [4] * * [2] [0], [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [2] [3] [0], [3] [1], [3] [2], [3] [3] [4] * * [4] [0], [4] [1], [4] [2], [4] [3], [4] [4] */ int count = 0; int r = 0, c = 0;/* r: srine suppript c: подписка столбца Pos [r] [c] соответствует вышеуказанным положениям*//* Назначает направление, сначала C ++, затем вниз R ++, затем влево C--, затем вверх R--*/ FOUNT int up = 1; final int down = -1; окончательный int left = 2; final int right = -2; int dir = right;/* Начало направления*/ int cir = 1;/* Сколько раундов назначения*/ while (count <m* n) {count ++; pos [r] [c] = count;/* назначение*/ switch (dir) {case right: if (c <n - cir) {/* В правой стороне текущей строки все еще нет назначения*/ c ++; } else {dir = down; r ++; } перерыв; Case Down: if (r <m - cir) {/* До сих пор нет назначения ниже текущего столбца*/ r ++; } else {dir = Left; c--; } перерыв; Случайный случай: if (c> cir-1) {/* В левой стороне текущей строки все еще нет назначения*/ c--; } else {dir = up; r--; } перерыв; Case Up: if (r> cir) {/* В текущем столбце нет назначения*/ r--; } else {cir ++;/* назначить круг*/ dir = right; C ++; } перерыв; }} System.out.println ("wulin.com Тест Результат:"); / * Выход */ for (int i = 0; i <m; i ++) {for (int j = 0; j <n; j ++) {if (pos [i] [j] <10) {System.out.print (pos [i] [j]+""+""); } else {System.out.print (pos [i] [j] + ""); }} System.out.println (); }}}Результаты работы:
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.