面试:数组:旋转矩阵
2016-05-20 16:36
302 查看
题目
给第一个m*n的矩阵,按螺旋顺序返回所有元素算法
越界的判断方法import java.util.*; public class Solution{ public ArrayList<Integer> spiralOrder(int[][] matrix){ ArrayList<Integer> result=new ArrayList<Integer>(); if(matrix.length==0) return result; int beginX=0,endX=matrix[0].length-1; //水平方向 int beginY=0,endY=matrix.length-1; // 垂直方向 while(true){ //外从左到右 for(int i=beginX;i<endX;++i) result.add(matrix[beginY][i]); //从上到下 for(int i=beginY;i<endY;++i) result.add(matrix[i][endX]); if(beginX>--endY) break; //从右到做 for(int i=endY;i>=beginX;--i) result.add(matrix[endY][i]); if(beginY>--endY) break; //判断数组越界 //从下到上 for(int i=endY;i>=beginY;--i) result.add(matrix[i][beginX]); if(++beginX>endX) break; } return result; } }
相关文章推荐
- 面试之单例模式
- 面试:数组:矩阵清零
- 《程序员面试笔试宝典》学习笔记(四)程序设计基础
- 面试题—宏、函数、宏函数、inline函数的区别与联系
- 常见链表面试题之判断链表是否相交,并求交点
- Java程序员一定知道的优秀第三方库
- 程序员的表白神器“520”大声喊出来
- 程序员最常见的谎话,你说了哪一句?
- 码农只能干到30岁的说法可信吗?
- iOS 面试题整理(带答案)二
- 面试基础(一)-字符串函数
- Stay教你程序员泡妞攻略
- 码农只能干到30岁的新理由
- 《招一个靠谱的移动开发》iOS面试题及详解(下篇)
- 《招一个靠谱的移动开发》iOS面试题及详解(下篇)
- 程序员的表白情书“520”大声喊出来
- 《招一个靠谱的移动开发》iOS面试题及详解(上篇)
- 《招一个靠谱的移动开发》iOS面试题及详解(上篇)
- 腾讯 5.20 2017暑期软件开发实习生笔试+面试
- 常见的单链表面试题