[Lintcode] Matrix Zigzag Traversal
来源:互联网 发布:sky 态度 科技知乎 编辑:程序博客网 时间:2024/06/10 15:10
Given a matrix of m x nelements (m rows, ncolumns), return all elements of the matrix in ZigZag-order.
Example
Given a matrix:
[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10, 11, 12]]
return [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]
设一个flag变量来储存走向.
public class Solution { /** * @param matrix: a matrix of integers * @return: an array of integers */ public int[] printZMatrix(int[][] matrix) { int height = matrix.length; int width = matrix[0].length; if(height == 0) return new int[0]; if(width == 0) return new int[0]; if(height == 1) return matrix[0]; int[] res = new int[height * width]; int col = 0, row = 0; int pos = 0; int dir = 1; while(row != height - 1 || col != width - 1) { res[pos] = matrix[row][col]; if(row == 0 && dir == 1) { //up if(col != width - 1) col += 1; else row += 1; dir = -1; pos++; continue; } else if(col == 0 && dir == -1) {//left if(row != height - 1) row += 1; else col += 1; dir = 1; pos++; continue; } else if(row == height - 1 && dir == -1) {//down col += 1; dir = 1; pos++; continue; } else if(col == width - 1 && dir == 1) {//right row += 1; dir = -1;pos++; continue; } col = col + dir; row = row - dir; pos++; } res[res.length - 1] = matrix[height - 1][width - 1]; return res; }}
0 0
- [Lintcode] Matrix Zigzag Traversal
- lintcode : Matrix Zigzag Traversal
- LintCode Matrix Zigzag Traversal 矩阵的之字型遍历
- #185 Matrix Zigzag Traversal
- [Lintcode]Binary Tree Zigzag Level Order Traversal
- 185.Matrix Zigzag Traversal-矩阵的之字型遍历(容易题)
- Zigzag Matrix(模拟)
- LintCode 374: Spiral Matrix
- lintcode:Binary Tree Preorder Traversal
- Binary Tree Zigzag Level Order Traversal 二叉树ZigZag打印
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- 年度总结——文字留住岁月,情感点缀年华
- 【JAVA】14、一维数组的声明及分配内存
- 同步异步1:有线网络中的同步异步
- 发现的一些github优秀分类集合(待完善)
- 范型,迭代Map
- [Lintcode] Matrix Zigzag Traversal
- CPU和GPU的区别
- Hibernate插入数据时报org.hibernate.service.UnknownServiceException异常
- ios闭包循环引用精讲
- 变量的初始化
- C++ 自制Redis 数据库(十一)哈希类与数据库类
- 225. Implement Stack using Queues 用两个队列实现栈的基本操作。
- Linux笔记(5)——搜索命令
- 内部类基本知识点