`
ldb19890624
  • 浏览: 230471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

面试算法题2

 
阅读更多

面试算法题2

package myfile;
/**
* 请用Java语言写一个函数printArray(int[][] aData),该函数将一个二维数组以顺时针螺旋的方式打印出来。
* 例如,对数组:
* 12345
* 141516176
* 132019187
* 12111098
*
* 打印出来的序列应该是:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
* @author J
*
*/
public class Mymethod2 {

public static int[][] arr={{1,2,3,4,5},{14,15,16,17,6},{13,20,19,18,7},{12,11,10,9,8}};
public static void main(String[] args) {
Mymethod2 program=new Mymethod2();
program.printArray(arr);

}
public void printArray(int[][] aData){
Character[] dire={'E','S','W','N'};
//System.out.println(dire.length);
char p=dire[0];
Boolean loop1=true;
int h1=0,h2=aData[0].length-1;
int v1=0,v2=aData.length-1;
//System.out.println(v2);
int i=0;
while(loop1){
p=dire[i];
if(v1>v2 || h1>h2) loop1=false;
if(p=='E'){
forwardPrint(h1,h2,v1,v1,aData);
//++h1;
++v1;
}
if(p=='S'){
forwardPrint(h2,h2,v1,v2,aData);
//--v2;
--h2;
}
if(p=='W'){
reversePrint(h1,h2,v2,v2,aData);
//--h2;
--v2;
}
if(p=='N'){
reversePrint(h1,h1,v1,v2,aData);
//++v1;
++h1;
}
++i;
if(i==4) i=0;
}
}
public void forwardPrint(int a1, int a2, int b1, int b2, int[][] c){
for(int j=b1;j<=b2;j++){
for(int k=a1;k<=a2;k++){
System.out.print(c[j][k]+",");
}
}
}
public void reversePrint(int a1, int a2, int b1, int b2, int[][] c){
for(int j=b2;j>=b1;j--){
for(int k=a2;k>=a1;k--){
System.out.print(c[j][k]+",");
}
}
}

}

--------------------------------------------------------------------------------------------------------------

输出结果:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,

补充:最后一个逗号未作处理;另外,算法可以再优化。

分享到:
评论

相关推荐

    经典面试算法题N道

    经典面试算法题N道,经典面试算法题N道,经典面试算法题N道,经典面试算法题N道

    Leetcode面试算法题(Golang版)

    用来记录我们刷LeetCode题目时候的心酸...编程语言使用Golang,代码风格上面并没有强制的采用什么编码规范,毕竟是算法解题,只需要代码清晰易懂就可以了。 鉴于个人精力时间有限,可能并不会完全最优解,请多多见谅。

    JAVA经典算法面试39题及答案

    JAVA经典算法面试39题及答案,算法是不得不看的

    Android面试算法题

    该资源为Android开发工程师面试算法题,为基础知识具备比较好的人提供。

    面试常见基础算法题总结

    面试算法题总结

    算法面试经典 100题

    面试经常遇到的,编程算法题。里面包括的都是面试官经常考你的算法设计问题,

    常见面试算法题

    招聘时常见的面试、笔试的算法数据结构、智力型问题。。。。。

    程序员面试经典算法题

    程序员面试经典算法题.通过对经典的有一定难度的算法类题目的分析,培养程序员算法思维.

    面试常见算法题

    这是在面试中遇到的一些常见算法题,笔试面试经常遇到,所以总结了一下,方面以后查看,分享给大家。

    面试算法题(对于笔试或机试很有用)

    这里收集了很多大公司的面试算法题,很不错、很经典,在准备面试时很有参考价值。

    字节面试算法题总结大全

    总的来说面试算法题的公司一半一半吧,另一半倾向于面试前端相关的实战练习题。外企基本不考察你的前端能力,只考虑你的算法和数据结构能力。所以前端同学懂一些基本的算法也是有必要的。我不知道其他语言的程序员在...

    百度面试算法题汇总

    百度开发测试面试算法题汇总,希望对大家有所帮助

    微软美国面试算法题集锦

    墙外的微软总部面试算法题目集锦,有需要的朋友可以下载了看看。

    前端面试算法题1

    问题四:冒泡排序问题五:快速排序2017/5/9 下午4:06前端算法面试题第2页 共5页问题六:不借助临时变量,进行两个整数的交换问题七:找出下列正数组的最大

    最全的Java面试题整理(含算法题)

    最全的Java面试题整理,含算法题 从大学到现在,参加过很多面试,经常会被问到一些基本的算法题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也用语言实现过,可由于在项目开发中应用的比较少,久而久之...

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....

    常见面试算法题目

    2. 冒泡排序 3. 1~100共一百个自然数,放入一个只有99个元素的数组中,找出没有被放入数组的这个数; 4. 字符串的反转输出 5. 截取字符串, 如果该字符串是“abc我的”,当截取的字节数是3时候就是"abc',如果是4,...

    java,c++等,常见算法,面试算法题

    java,c++等,常见算法,面试算法题 汉诺塔、搜索、冒泡等算法....

    JAVA面试 算法题

    JAVA JAVA面试 算法题 算法题答案 面试 答案 谢谢

    java笔试面试算法题

    多种笔试面试的算法设计题,和经典笔试题目。

Global site tag (gtag.js) - Google Analytics