`
bill600
  • 浏览: 5913 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

解答一道面试题

阅读更多

看到网友发的一道面试题 试作解答

 

要求打印出:

int i = 5;


  1  2  3  4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9


int i = 6;


1   2  3  4  5 6

20 21 22 23 24 7

19 32 33 34 25 8

18 31 36 35 26 9

17 30 29 28 27 10

16 15 14 13 12 11

思路很简单
把数据按照螺旋矩阵的路线装进数组
然后再打印出来

public class PrintSquare {
	private int[][] getArray(int n) {
		if (n > 0) {
			int[][] array = new int[n][n];
			int x = 0;
			int y = 0;
			int xStart = 0;
			int xEnd = n - 1;
			int yStart = 0;
			int yEnd = n - 1;
			for (int i = 1; i <= n * n; i++) {
				array[y][x] = i;
				if (y == yStart && x < xEnd) {// 横向前进
					x++;
					if (x == xEnd) {
						yStart++;
					}
				} else if (y < yEnd && x == xEnd) {// 纵向前进
					y++;
					if (y == yEnd) {
						xEnd--;
					}
				} else if (y == yEnd && x > xStart) {// 横向倒退
					x--;
					if (x == xStart) {
						yEnd--;
					}
				} else if (y > yStart && x == xStart) {// 纵向倒退
					y--;
					if (y == yStart) {
						xStart++;
					}
				}
			}
			return array;
		}
		return null;
	}

	public void printSquare(int n) {
		if (n > 0) {
			int[][] arr = getArray(n);
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < n; j++) {
					System.out.print(arr[i][j] + "\t");
				}
				System.out.println();
			}
		}
	}

	public static void main(String[] args) {
		PrintSquare test = new PrintSquare();
		test.printSquare(5);
		System.out.println();
		test.printSquare(6);
	}

}

 

分享到:
评论

相关推荐

    笔试面试题 一道面试题关于信息系统的问答和注意事项

    笔试面试题 一道面试题关于信息系统的问答和注意事项 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的...

    一道经典的前台程序员面试题

    在解答这样的面试题时,应聘者需要考虑以下几点: - **盒模型**:理解`width`、`padding`和`border`如何影响元素的实际尺寸。 - **浮动布局**:`float`属性可以使元素脱离正常文档流,使其可以与其他元素并排显示。 ...

    一道月工资三万的面试题

    根据给定的信息,我们可以推断出这是一道与算法相关的面试题目。虽然提供的部分内容看起来较为混乱,但结合标题、描述及标签,我们可以尝试解析并构建一个相对完整的算法问题。 ### 题目背景 一家知名公司在招聘...

    一道微软数据库面试题

    根据题目提供的信息,这是一道涉及SQL查询技巧的微软数据库面试题。虽然题目中的SQL代码与题目描述不完全对应,但我们可以基于题目描述中的信息来分析这个问题并给出解答。 ### 题目背景 题目描述指出,有一个表,...

    一道面试题的思考

    《一道面试题的思考——深入理解memcpy函数的实现》 在C语言中,`memcpy`函数是一个非常重要的内存操作函数,用于将一块内存区域的数据复制到另一块内存区域。在面试中,这个问题常用来测试候选人的基础知识、逻辑...

    一道关于Ajax、Jquery的面试题

    针对这道面试题,可能的问题方向包括: 1. **Ajax的基本工作原理**:解释Ajax是如何通过XMLHttpRequest对象实现异步通信的,涉及的步骤包括创建对象、打开连接、设置请求方法、发送请求、接收响应和处理数据。 2. ...

    hadoop2面试题 - 2012腾讯笔试的一道算法题.pdf

    ### hadoop2面试题 - 2012腾讯笔试的一道算法题 #### 背景与题目概述 本文档提供了2012年腾讯笔试中一道关于字符串处理的算法题,该题目要求将字符串中的所有大写字母移动到字符串的末尾,同时保持其他字符的相对...

    java的一些面试题

    Java面试题涵盖了许多核心知识点,包括基础技术、项目经验、逻辑推理和SQL查询。下面将对这些方面进行详细的解析。 1. **基础技术题** - **UML图**:UML(统一建模语言)有多种图表,包括类图、对象图、用例图、...

    sql经典面试题

    根据提供的文件内容,我们可以整理出一系列与SQL相关的面试题及解答思路。这些题目涵盖了SQL的基础查询、数据处理、以及更高级的功能应用等多方面内容,非常适合准备数据库工程师面试的求职者进行练习。下面是针对每...

    数据结构和算法名企面试题

    提供的压缩包文件中包含的是微软等名企的数据结构与算法面试题,分为不同版本,覆盖了100道题目,可以按照版本号逐步学习和解题。例如: 1. **[答案修正]精选微软数据结构+算法面试100题[V0.2版,前20题].pdf** - ...

    各大公司面试题+IT面试宝典

    对于每一道面试题,不仅要给出答案,还要思考其背后的原理和优化空间。同时,关注行业动态,了解新技术和最佳实践,这将使你在面试中显得更有远见和洞察力。 记住,面试不仅仅是检验你的技能,也是你了解公司、展现...

    2016腾讯校招汇总面试题.docx

    【腾讯校招面试题解析】 腾讯作为国内知名的互联网巨头,其校园招聘的面试题往往具有代表性,涵盖了多种技能和知识领域。2016年的腾讯校招面试题主要分为问答题和选择题,旨在考察候选人的创新思维、逻辑推理、行业...

    这是一道广为流传的微软面试题

    本篇文章将详细探讨一道经典的微软面试题——链表的反转,并通过分析其背后的逻辑和技术要点,帮助读者更好地理解和掌握这一问题。 #### 题目背景与解析 题目要求:给定一个链表的头结点,反转该链表,并返回反转...

    软件工程师经典面试题

    1. 该题是一道编码与解码的问题。从给定的规则来看,每个字母向后移动了两位。所以FAITH -&gt; F(2)=H, A(2)=C, I(2)=K, T(2)=V, H(2)=J,因此FAITH解码后为CJKVJ,答案是无对应选项。 2. 这是一道基础数学运算题。7/2...

    微软面试题和答案

    1. **烧绳计时**:这是一道时间计算题。要计时一个小时十五分钟,可以使用三根绳子。首先点燃第一根绳子的两端,它会在30分钟后烧完;接着在第一根绳子烧完后立即点燃第二根绳子的另一端,这样第二根绳子会在45分钟...

    智力面试题汇总(含答案)

    以下是对几道经典的智力面试题的详细解答: 1. **5升和6升水壶取3升水问题**:这是一个典型的数学问题,通过一系列操作可以实现。首先,将6升壶装满水,然后倒入5升壶,剩下1升。将5升壶清空,然后把6升壶中的1升...

    程序员面试题精选100题

    【程序员面试题精选100题】是一份中文Word文档,包含了针对程序员的100道面试题目,这些题目详细解答了如何准备编程面试,尤其是技术面试环节。面试是求职过程中至关重要的一环,它能让雇主直接评估应聘者的技能和...

    全国各地 net /C#面试题

    2. 面试题:这个文件名可能代表一个包含所有面试题目的文档,可能以PDF、Word或Excel等格式存在,每一道题目可能都有详细的描述,涵盖C#语言基础、.NET框架、ASP.NET、ADO.NET、WPF、Windows服务、多线程、设计模式...

    常用软件测试面试题(word文档)

    以下是对这些面试题的详细解答: 1. 软件测试是团队工作的原因在于它是保证软件质量的最后一道防线,能发现并修复潜在的问题,避免产品上线后的故障。 2. 测试过程通常包括测试计划、设计(如测试用例和数据)、...

Global site tag (gtag.js) - Google Analytics