本文主要是介绍一道有意思的面试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面试过程中没有想到合适的数据结构,想了半天,构思没有实践落地。
也是听错了,以为三道题都要做,做出来了两道,这道死活没落地成功。
结果,三道题里面任选一道就行。。。。
好吧
题目:给定一个数字矩阵,按照顺时针,螺旋输出。
举例如图:
代码如下:
public static void spiralOutput(){LinkedList<LinkedList> outList = new LinkedList();LinkedList innerList1 = new LinkedList();innerList1.add(1);innerList1.add(2);innerList1.add(3);innerList1.add(4);LinkedList innerList2 = new LinkedList();innerList2.add(5);innerList2.add(6);innerList2.add(7);innerList2.add(8);LinkedList innerList3 = new LinkedList();innerList3.add(9);innerList3.add(10);innerList3.add(11);innerList3.add(12);LinkedList innerList4 = new LinkedList();innerList4.add(13);innerList4.add(14);innerList4.add(15);innerList4.add(16);outList.add(innerList1);outList.add(innerList2);outList.add(innerList3);outList.add(innerList4);System.out.println(outList);while (outList.iterator().hasNext()) {Iterator innerFirstIt = outList.getFirst().iterator();while (innerFirstIt.hasNext()) {System.out.println(innerFirstIt.next());}outList.removeFirst();for (int i = 0; i <= outList.size() - 1; i++) {System.out.println(outList.get(i).getLast());outList.get(i).removeLast();}LinkedList lastList = outList.getLast();for (int i = 0; i <= lastList.size() - 1; i++) {System.out.println(lastList.get(lastList.size() - 1 - i));}outList.removeLast();for (int i = 0; i <= outList.size() - 1; i++) {LinkedList innerList = outList.get(outList.size() - 1 - i);System.out.println(innerList.getFirst());innerList.removeFirst();}}}
这篇关于一道有意思的面试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!