`

498. Diagonal Traverse

 
阅读更多

Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal order as shown in the below image.

Input:
[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

Output:  [1,2,4,7,5,3,6,8,9]

Solution:

class Solution(object):
    def findDiagonalOrder(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        res = []
        if not matrix or not matrix[0]:
            return res
        m = len(matrix)
        n = len(matrix[0])
        scan_nums = m + n - 1
        for i in range(0, scan_nums):
            if i % 2 == 0:
                x = i if i < m else m - 1
                y = 0 if i < m else i - m + 1
                while (x >= 0 and y < n):
                    res.append(matrix[x][y])
                    x -= 1
                    y += 1
            else:
                x = 0 if i < n else i - n + 1
                y = i if i < n else n - 1
                while (x < m and y >= 0):
                    res.append(matrix[x][y])
                    x += 1
                    y -= 1
        return res
 
分享到:
评论

相关推荐

    svg实现树状图

    网络资源拿出来与大SVG是目前最火热的图像文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形,它是基于XML,由W3C联盟进行开发。SVG可以实现无损缩放,在性能上要比其它格式的图片更好家...

    CSS表格斜线.rar

    .diagonal-cell::before, .diagonal-cell::after { content: ""; position: absolute; width: 100%; height: 100%; background-color: #fff; /* 这里可以替换为你的背景颜色 */ } ``` 3. 接下来,通过调整伪...

    matlab开发-diagonal

    在MATLAB编程环境中,"diagonal"是一个非常实用的功能,用于提取或构造矩阵的主对角线元素。本文将深入探讨`diagonal`函数的使用、语法、应用场景以及相关的编程技巧。 ### `diagonal`函数简介 MATLAB的`diagonal`...

    通过matlab绘制数据的ROC曲线,并输出TN,FP,FN,TP混淆矩阵,含仿真操作录像

    1.版本:matlab2021a,包含仿真操作录像,操作录像使用windows media player播放。 2.领域:ROC。 3.内容:通过matlab绘制数据的ROC曲线,并输出TN,FP,FN,TP混淆矩阵。 %使用特征和标签初始化分类器类 ...

    d3treetutorial

    var diagonal = d3.svg.diagonal() 将对角线附加到画布上,并为其提供一些基本属性 canvas.append("path") .attr("fill", "none") .attr("stroke", "black") .attr("d", diagonal); 添加对角线的源坐标和...

    zhuiganfa.zip_diagonal_matlab chase_三对角

    在标题"zhuiganfa.zip_diagonal_matlab chase_三对角"中,我们关注的是一个关于MATLAB实现的追赶法,它用于求解特定形式的三对角线性系统。 三对角方程组通常表示为: \[ a_{i-1}x_{i-1} + b_i x_i + c_{i+1}x_{i+...

    matlab开发-diagonal.zip.zip

    在MATLAB中,"diagonal"函数是一个非常重要的工具,用于...这个名为“matlab开发-diagonal.zip”的压缩包可能包含了实现这些操作的实例代码,学习和参考这些代码可以帮助我们更好地掌握MATLAB中的对角矩阵处理技巧。

    Android-DiagonalImageView一个简单的imageview允许您轻松创建对角切割视图

    这个库的源码(santalu-diagonal-imageview-ae263a2)可以帮助开发者深入了解其实现原理,包括如何绘制对角线切割效果,以及如何处理触摸事件等。对于想要深入学习Android自定义视图的开发者来说,这是一个很好的...

    aabb-tree:MATLAB的d维aabb-tree实现

    标题中的"aabb-tree"指的是轴对齐包围盒(Axis-Aligned Bounding Box Tree),它是一种在计算机图形学和计算几何领域广泛使用的数据结构。在MATLAB中实现的d维aabb树,主要用于高效地处理多维空间中的对象,特别是在...

    机器学习入门技术笔记.pdf

    - 对角线元素:通过`.diagonal()`获取矩阵对角线上的元素,而`.diagonal().sum()`计算对角线元素的和。 - 展开矩阵:通过Flattening或Reshaping操作将多维数组转换为一维数组。 3. 数据准备和预处理:这部分讲解...

    iso-iec 14496-10(3rd_2006-03-01)_MPEG4_AVC_H264.pdf

    Contents Page 0 Introduction.................................................................................................................................................................

    Android代码-像素过滤

    Current bugs: Add Poisson-disc sampling ...Diagonal lines on some devices - auto-calibrate bitmap offset using a screenshot. Filter does not cover navigation buttons fully when the keyboard is shown.

    Squint-为图片设置斜切效果的组件.zip

     squint:gravity="right" /&gt;java:DiagonalView diagonalView = (DiagonalView) findViewById(R.id.diagonal); // to set image from resources  diagonalView.setImageSource(R.drawable.your_image...

    【JavaScript源代码】vue element 表头添加斜线的实现代码.docx

    你可以创建一个新的CSS类,例如`.diagonal-line`,并在其中定义一个伪元素来绘制斜线。在你的全局样式表或组件的 scoped 样式中添加以下代码: ```css .el-table th .diagonal-line::before { content: ""; ...

    python-pathfinding:通用寻路算法的实现

    python路径查找 python 2和3的寻路算法 当前,此库中捆绑了7个路径查找器... diagonal_movement import DiagonalMovement from pathfinding . core . grid import Grid from pathfinding . finder . a_star import ASta

    TuringCollectedPublications.pdf

    A diagonal argument is used to show that there are questions about the actions of Turing machines which cannot be answered by any machine. By formalizing the action of Turing machines in the lower ...

    黄书皮风景名胜B2_U6TA.pdf

    1. diagonal adj. 对角线的 2. plateau n. 高原 3. pastoral adj. 乡村生活的,田园风光的 4. meander 指河流等蜿蜒缓慢流动 5. pasture 牧场; 牧地; 草原 6. stretch v. 绵延; 延续; 伸展 7. take up / account for...

Global site tag (gtag.js) - Google Analytics