劍指offer-19:順時針列印矩陣
題目描述
輸入一個矩陣,按照從外向裡以順時針的順序依次列印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
解題思路
- 按照順時針挨著解析矩陣
- 注意邊界判斷,length需要減一,row和col可取
程式碼實現
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> list = new ArrayList<Integer>();
if (matrix.length == 0 || matrix[0].length == 0) {
return list;
}
int row = 0;
int col = 0;
int rowLength = matrix.length;
int colLength = matrix[0].length;
while (true) {
for (int i = col; i < colLength; i++) {
list.add(matrix[row][i]);
}
row++;
if (rowLength <= row) break;
for (int i = row; i < rowLength; i++) {
list.add(matrix[i][colLength - 1]);
}
colLength--;
if (col >= colLength) break;
for (int i = colLength - 1; i >= col; i--) {
list.add(matrix[rowLength - 1][i]);
}
rowLength--;
if (rowLength <= row) break;
for (int i = rowLength - 1; i >= row; i--) {
list.add(matrix[i][col]);
}
col++;
if (col >= colLength) break;
}
return list;
}
}
相關文章
- 【劍指offer】順時針列印矩陣矩陣
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- 劍指 Offer 29-順時針列印矩陣c++矩陣C++
- 力扣 - 劍指 Offer 29. 順時針列印矩陣力扣矩陣
- 順時針列印矩陣矩陣
- JZ-019-順時針列印矩陣矩陣
- 劍指offer之順序列印陣列陣列
- JS實現順時針列印陣列JS陣列
- [每日一題] 第二十一題:順時針列印矩陣每日一題矩陣
- Python練習-LeetCode 第1篇 順時針列印矩陣PythonLeetCode矩陣
- 第四章:多維陣列和矩陣 --------------- 4.1 基礎題:順時針列印二維陣列陣列矩陣
- 1,2,3…n*n 的數字按照順時針螺旋的形式列印成矩陣(遞迴)矩陣遞迴
- 【劍指offer】調整陣列順序陣列
- 《劍指offer》:[66]矩陣中的路徑矩陣
- 劍指offer:JZ12 矩陣中的路徑矩陣
- 《劍指offer》:[61]按之字形順序列印二叉樹二叉樹
- 劍指 Offer 12-矩陣中的路徑c++矩陣C++
- 力扣 - 劍指 Offer 12. 矩陣中的路徑力扣矩陣
- JAVA列印有序矩陣Java矩陣
- 劍指offer之列印超過陣列一半的數字陣列
- 用 Go 劍指 Offer 12. 矩陣中的路徑 (DFS + 回溯)Go矩陣
- Java 實現順時針螺旋二維陣列輸出Java陣列
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- [劍指offer] 把二叉樹列印成多行二叉樹
- 劍指offer面試題12:矩陣中的路徑(Java版已在牛客網AC)面試題矩陣Java
- 【劍指offer】陣列中的逆序對陣列
- 劍指 Offer 21. 調整陣列順序使奇數位於偶數前面陣列
- 劍指OFFER-從頭到尾列印連結串列(Java)Java
- 《劍指offer》:[60]把二叉樹列印成多行二叉樹
- 【劍指offer】從上向下列印二叉樹二叉樹
- 劍指offer面試題14 調整陣列順序使奇數位於偶數前面面試題陣列
- 劍指Offer-37-陣列中逆序對陣列
- 《劍指offer》:[52]構建乘積陣列陣列
- 【劍指offer】把陣列排成最小的數陣列
- 愛奇藝矩陣管理工具,多個矩陣同時管理矩陣
- 【劍指offer】5.二叉樹的映象和列印二叉樹
- 劍指 Offer 列印從1到最大n位數c++C++