`
hcx2013
  • 浏览: 82993 次
社区版块
存档分类
最新评论

之字形打印矩阵

 
阅读更多

对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。

给定一个整数矩阵mat,以及他的维数nxm,请返回一个数组,其中元素依次为打印的数字。

测试样例:
[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3
返回:[1,2,3,6,5,4,7,8,9,12,11,10]


import java.util.*;
 
public class Printer {
    private static int index = 0;
 
    public int[] printMatrix(int[][] mat, int n, int m) {
        int[] res = new int[mat.length * mat[0].length];
        int tR = 0;
        int tC = 0;
        int dR = mat.length - 1;
        int dC = mat[0].length - 1;
        boolean fromRight = false;
        while (tR != dR+1) {
            printLevel(mat, tC, dC, tR++, fromRight, res);
            fromRight = !fromRight;
        }
        return res;
    }
 
    private static void printLevel(int[][] mat, int tC, int dC, int tR,
            boolean fromUp, int[] res) {
        if (fromUp) {
            while (tC - 1 != dC) {
                res[index++] = mat[tR][dC--];
            }
        } else {
            while (tC != dC + 1) {
                res[index++] = mat[tR][tC++];
            }
        }
    }
}
 
分享到:
评论

相关推荐

    目前最火最热门的python经典编程题之2

    29.顺时针打印矩阵 Array 30.包含min函数的栈 Stack 31.栈的压入弹出序列 Stack 常考 32.从上往下打印二叉树 Tree 常考 32.按之字形顺序打印二叉树 Tree 32.把二叉树打印成多行 Tree 33.二叉搜索树的后序遍历...

    leetcode中国-codePractice:代码实践

    --1043行:“之“字形打印矩阵 --1118行:在行列都排好序的矩阵中找数k --1167行:给定一个链表的头节点head,请判断该链表是否为回文结构三种方法,额外空间复杂度分别为n 2/n 1 注意链表的定义,加上默认构造函数 ...

    《剑指Offer》题目及代码.zip

    20. 顺时针打印矩阵 21. 包含min函数的栈 22. 判断一个栈是否是另一个栈的弹出序列 23. 层序遍历二叉树 24. 后序遍历二叉搜索树 25. 二叉树中和为某值的路径 26. 复杂链表的复制 27. 二叉搜索树转换为双向链表...

    使用 MATLAB 可视化科学数据(详细在线教程)

    MATLAB 具有丰富的功能,可将向量和矩阵显示为图形,以及注释和打印这些图形。它包括用于二维和三维数据可视化、图像处理、动画和演示图形的高级功能。在 MATLAB 中创建图形有两种基本方法。您可以使用 MATLAB GUI ...

    cbmtext:使用兼容Commodore MPS 803的老式打印机从现代PC打印Unicode文本文件(UTF-8编码)

    Commodore MPS 803本身具有一个称为的非标准ASCII变体,缺少许多带有重音符号的符号(如带重音符号的字母),其中包括一些非标准字形: 使用cbmtext ,MPS 803将能够打印现代文本文件( 编码),包括带有国际字符...

    lrucacheleetcode-LeetCode:力扣算法解决方案

    之字形转换 3总和 从列表末尾删除第 N 个节点 合并两个排序列表 合并 k 个排序列表 有效数独 排列 组字谜 螺旋矩阵 合并间隔 独特的路径 独特的路径 II 最小路径和 解码方式 二叉树中序遍历 验证二叉搜索树 对称树 ...

    leetcode和oj-Algorithm:一个曾经共享一些通用算法的项目

    字形打印二叉树 排序 冒泡排序 快速排序 归并排序 背包问题..持续更新中 LCS 素数筛选法 剑指offer刷题 反转链表 前k小的数 链表相关 镜像的二叉树 Z字型打印二叉树 回溯法 机器人的运动范围 矩阵中的路径 leetcode...

    leetcode63-LeetCode-Cpp:C++版本的LeetCode算法

    顺时针打印二维矩阵】 15. 【LeetCode55 一维数组,跳跃游戏】 16. 【LeetCode59 顺时针打印螺旋矩阵方阵】 sort topic 1. 2. 3. 4. 5. 6. 7. 8. 9. binary-search topic 1. 【有序数据中,查找等于target的index...

    数据结构课程设计—骑士漫游(马踏棋盘)

    对每次实验,按照棋盘矩阵的方式,打印每个格被行径的顺序编号。 技术提示: 解决这类问题的关键是考虑数据在计算机中的存储表示。可能最自然的表示方法就是把棋盘存储在一个8*8的二维数组board中。以(x,y)为起点时...

    LeetCode解题总结

    LeetCode解题总结 ...15.8.1 螺旋打印矩阵 15.8.2 生成螺旋矩阵 15.9 Z字形输出字符串 15.10 不使用乘、除、取模实现两个整数相除 15.11 文本对齐 15.12 共线的最大点数 16 其他问题 16.1 随机数生成器

    达内 coreJava 习题答案

    其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 ...

    C# for CSDN 乱七八糟的看不懂

    没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两...

Global site tag (gtag.js) - Google Analytics