前几天,在别人博客上见到一个面试题,就看看吧:
要求打印出:
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
上午没事就试了一下,还好,单层循环,效率还好吧;
贴出来和兄弟们共享一下啦~~~
package com.pdsu.zhang;
public class Interview_MartixPrint {
/**
* @param args
* @author zhangli
*
* @param layer 每层的数组长宽
* @param arr 递归的层数
*/
static int len=1;
static void get(int layer ,int[][] arr){
int width =arr.length-2*layer; // 每层的数组长宽
int i=layer,j=layer; // 每层的起点坐标
int flag=1; // 旋转标记
int end=width*2+2*(width-2); // 每层的个数
for (int k=0; k<=end; k++) {
if(flag==1) {
arr[i][j]=len;
j++;
if(j==arr.length-layer){
j--;
flag=2;
}
}
if(flag==2) {
arr[i][j]=len;
i++;
if(i==arr.length-layer)
{
i--;
flag=3;
}
}
if(flag==3) {
arr[i][j]=len;
j--;
if(j==-1+layer)
{
j++;
flag=4;
}
}
if(flag==4) {
if(i==layer)
{
get2(layer+1,arr);
}else{
arr[i][j]=len;
i--;
}
}
len++;
if(len>arr.length*arr.length)
break;
}
}
static void toString(int[][] arr){
for (int[] o : arr) {
for (int t : o) {
System.out.print(t+" ");
for(int k=0;k < (int)Math.log10(arr.length*arr.length)-(int)Math.log10(t);k++)
System.out.print(" ");
}
System.out.println();
}
}
public static void main(String[] args) {
int num=20;
int[][] arr=new int[num][num];
get(0 ,arr);
toString(arr);
}
}
欢迎指正,
如有更好方法,就说说呗
分享到:
相关推荐
本资料集合包含了20套企业面试题及相应的答案,涵盖了测试基础、理论、C语言以及综合能力等多个方面,旨在帮助准备面试的软件测试人员更好地理解和掌握核心概念,提高应聘成功率。 **测试基础** 这部分面试题主要...
深圳理邦精密电子公司的笔试题则更加侧重于电子技术的深入理解。题目询问了影响三极管性能的参数,高频放大和前段放大所需关注的特性;要求设计并解释同向放大电路和差分放大电路的工作原理;画出二阶低通滤波器的...
根据给定文件的信息,我们可以提炼出以下关于2011年深圳大学机械电子工程复试面试的相关知识点: ### 面试基本信息 - **时间**:2011年4月16日下午2点。 - **地点**:南区实验楼819室。 - **参与人员**: - **...
在讨论 Uber 营销策略之前,需要了解 Uber 的业务模式,Uber 是一家共享经济公司,通过提供即时叫车服务,连接司机和乘客,实现共享资源的优化配置。要想在一周内招募到 1000 名车主,需要了解车主的需求,了解 Uber...
这些文件可能包含了各种类型的题目,例如选择题、填空题、编程题和解答题,每一道题目都对应一个特定的技术主题。 总结上述信息,我们可以预想这个压缩包中的内容将覆盖广泛的技术领域,包括但不限于: 1. **编程...
面试大前端每日一题,从基础到进阶,从原理到实战,用面试题来倒逼强迫自己每天去学习去查漏补缺,系统完善前端的完整知识体系!注:每天早上9点左右更新译文及前一天的答案,首页文件夹里的文章扩展网络,替代参考...
1. **校赛**:通常会在五一劳动节期间举行,分为A(偏算法)、B(偏模型)两类题目,有时还会加入深圳杯(A、B、C、D四类题目)。 2. **笔试与面试**:一般在6月底至7月初进行,旨在选拔优秀的选手组成校队。其中...