public class Solution {
public int[] FindDiagonalOrder(int[,] matrix) {
var row = matrix.GetLength();
var col = matrix.GetLength(); var upBound = row - + col - ; var ary = new int[row * col]; int i = ;
int j = ; var index = ; if (row == )
{
for (int m = ; m < col; m++)
{
ary[index++] = matrix[, m];
}
return ary;
}
if (col == )
{
for (int m = ; m < row; m++)
{
ary[index++] = matrix[m, ];
}
return ary;
} var direction = true;// for (int k = ; k <= upBound; k++)//对角线上的i,j之和
{
if (i == && j == )
{
ary[index++] = matrix[i, j];
j = ;
continue;
}
//结束点
if (i == row - && j == col - )
{
ary[index++] = matrix[i, j];
break;
}
var EndJ = Math.Min(i, col - );//
var EndI = Math.Min(j, row - );//
while (i + j == k)
{
ary[index++] = matrix[i, j];
if ((direction && (j == || i == row - )) || (!direction && (i == || j == col - )))
{
if (direction)
{
i++;
if (i > row - )
{
i = row - ;
j++;
if (j > col - )
{
j = col - ;
}
}
}
else
{
j++;
if (j > col - )
{
j = col - ;
i++;
if (i > row - )
{
i = row - ;
}
}
} direction = !direction;
continue;
}
if (direction)
{
i++;
if (i > row - )
{
i = row - ;
}
j--;
if (j < )
{
j = ;
}
}
else
{
j++;
if (j > col - )
{
j = col - ;
}
i--;
if (i < )
{
i = ;
}
} }
}
return ary;
}
}

https://leetcode.com/problems/diagonal-traverse/#/description

leetcode498的更多相关文章

  1. [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse

    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...

  2. LeetCode498 对角线遍历

    给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], ...

随机推荐

  1. 一图说明offsetTop、top、clientTop、scrollTop等

    offsetParent:该属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),已进行过CSS定位的容器元素. 如果这个容器元素未进行CSS定位, ...

  2. linux自学(一)之vmware虚拟机安装

    之前有研究过linux,后来一段时间没有操作了,现在有点陌生,而且当初也没有记录学习内容.现在想从新开始包括虚拟机安装到部署Javaweb项目,把这之间所需要的全都记录下来,以便后边学习参考使用. 虚 ...

  3. stm32寄存器版学习笔记10 SPI

    SPI(Serial Peripheral Interface),串行外围设备接口.SPI是一种高速的.全双工.同步的通信总线. SPI接口一般使用4条线通信: MISO 主设备数据输入,从设备数据输 ...

  4. 用eclipse打包可执行的jar(含第三方jar包)

    在eclipse中的解决方式如下: 在工程目录下(与src同层)建立lib目录,将第三方Jar包放到这个目录里(copy,paste即可)[如果直接引用本地的jar,一旦换电脑就呵呵了...] 右击工 ...

  5. bzoj 2002 Bounce 弹飞绵羊

    bzoj 2002 Bounce 弹飞绵羊 设一个虚拟节点表示被弹飞,则每个点的后继点是唯一确定的,每个点向它的后继点连边,就形成了一颗树. 询问就是问某个节点到虚拟节点的路径长度,修改就删除原来向后 ...

  6. Windows7 下python3和python2同时 安装python3和python2

    1.下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的pyt ...

  7. objectForKey与valueForKey在NSDictionary中的差异

    从 NSDictionary 取值的时候有两个方法,objectForKey: 和 valueForKey:,这两个方法具体有什么不同呢? 先从 NSDictionary 文档中来看这两个方法的定义: ...

  8. python笔记-20 django进阶 (model与form、modelform对比,三种ajax方式的对比,随机验证码,kindeditor)

    一.model深入 1.model的功能 1.1 创建数据库表 1.2 操作数据库表 1.3 数据库的增删改查操作 2.创建数据库表的单表操作 2.1 定义表对象 class xxx(models.M ...

  9. 关于fpga优化的set input delay 和 set output delay

    set input delay 和set output delay 首先必须明确的是指的外部delay,而非input或output的内部delay,那么这外部delay包含什么呢?包含1,外部路径延 ...

  10. jsp转向,exception

    jsp要像servlet那样转向时可以得 <jsp:forward page="Counter.jsp"> <jsp:param name="parma ...