文档章节

螺旋矩阵算法 java实现

hollowJ丶
 hollowJ丶
发布于 2016/08/07 18:00
字数 203
阅读 22
收藏 0
package com.hcysoul;
import java.util.Scanner;

public class Main{
	static int n;
	static int[][] target;
	static char direction = 'r';
	static int column = 0, row = 0;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		n = input.nextInt();
		target = new int[n][n];
		fillAll();
		show();
	}

	private static void fillAll() {
		// TODO Auto-generated method stub

		int max = n * n;
		target[0][0] = 1;
		for (int num = 2; num <= max; num++) {
			setLocation();
			fill(num);
		}
	}

	private static void setLocation() {
		// TODO Auto-generated method stub

		if (direction == 'r') {
			column++;
			if (column < n && target[row][column] == 0) {
				return;
			} else {
				column--;
				row++;
				direction = 'd';
				return;
			}
		}
		if (direction == 'd') {
			row++;
			if (row < n && target[row][column] == 0) {
				return;
			} else {
				row--;
				column--;
				direction = 'l';
				return;
			}

		}

		if (direction == 'l') {
			column--;
			if (column >= 0 && target[row][column] == 0) {
				return;
			} else {
				column++;
				row--;
				direction = 'u';
				return;
			}

		}
		if (direction == 'u') {
			row--;
			if (row >= 0 && target[row][column] == 0) {
				return;
			} else {
				direction = 'r';
				row++;
				column++;
				return;
			}
		}
	}

	private static void fill(int num) {
		// TODO Auto-generated method stub
		target[row][column] = num;
	}

	private static void show() {
		// TODO Auto-generated method stub
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				System.out.print(target[i][j] + " ");
			}
			System.out.println();
		}
	}

}

本文转载自:http://blog.csdn.net/hcysoul/article/details/45920569

hollowJ丶
粉丝 0
博文 29
码字总数 11240
作品 0
广州
程序员
私信 提问
求Java版螺旋矩阵算法

求Java版螺旋矩阵算法,函数声明: 要求: 最短,最简洁,最佳答案加20分。

悠悠然然
2015/04/03
425
3
LeetCode:Spiral Matrix - 螺旋输出矩阵中的元素

1、题目名称 Spiral Matrix(螺旋输出矩阵中的元素) 2、题目地址 https://leetcode.com/problems/spiral-matrix/ 3、题目内容 英文:Given a matrix of m x n elements (m rows, n columns...

北风其凉
2015/11/02
956
0
LeetCode:Spiral Matrix II - 将元素1-n^2以螺旋序填充到矩阵

1、题目名称 Spiral Matrix(螺旋输出矩阵中的元素) 2、题目地址 https://leetcode.com/problems/spiral-matrix-ii/ 3、题目内容 英文:Given an integer n, generate a square matrix fill...

北风其凉
2015/11/03
404
0
《数据结构与算法系列》合集整理

《数据结构与算法系列》合集整理 整理来自博客园skywang12345,以下摘自作者介绍: “最近抽空整理了"数据结构和算法"的相关文章。在整理过程中,对于每种数据结构和算法分别给出"C"、"C++"...

kaixin_code
2018/12/01
189
0
android图像处理系统1.3

android图像处理系统1.3 该版本由很大的更新。在处理图像的方式上,我引入了java中的矩阵类(Matrix)。该类由http://math.nist.gov/javanumerics/jama/提供。实现了矩阵的加、减、乘、转置、矩...

长平狐
2012/10/08
115
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 文件类操作API与IO编程基础知识

阅读目录: https://www.w3cschool.cn/java/java-io-file.html Java 文件 Java 文件 Java 文件操作 Java 输入流 Java 输入流 Java 文件输入流 Java 缓冲输入流 Java 推回输入流 Java 数据输入...

boonya
45分钟前
5
0
SDKMAN推荐一个好

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性: By Developers, fo...

hotsmile
今天
9
0
什么是 HDFS

是什么? HDFS 是基于 Java 的分布式文件系统,允许您在 Hadoop 集群中的多个节点上存储大量数据。 起源: 单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称...

Garphy
今天
7
0
一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
今天
11
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部