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. Markdown 效果测试

    欢迎使用 Cmd - 在线 Markdown 编辑阅读器 \[ \int e^{-x^2 - y^2} dx = \sqrt{2 \pi} \] 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知 ...

  2. linux下导入、导出mysql 数据库命令

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/lo ...

  3. PHP---文件上传与下载

    转自http://www.cnblogs.com/lazycat-cz/p/4113037.html 安全性能---水平不够 ╮(╯_╰)╭ 文件上传--->就是将本地的文件上传到服务器上.(H ...

  4. 实现同时提交多个form(基础方法) 收集(转)

    方法一: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 ...

  5. docker学习(一)在centos7上安装与启动docker

    CentOS Docker 安装 1.Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS ...

  6. Windows常用配置和sublime快捷键

    常用配置和快捷键 1.操作系统常用配置 (1)系统调整为最佳性能 (2)文件夹显示设置:显示文件类型.显示路径 (3)任务栏设置:锁定任务栏+使用小图标2.操作系统常用快捷键 win+数字键--快速打 ...

  7. HTML5的28个常用特性

    1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<figure>和<figcapt ...

  8. SpringMVC传递数据的流线图

    流程含义解释:(1)HTTP请求到达web服务器,web服务器将其封装成一个httpServletRequest对象(2)springMVC框架截获这个httpServletRequest对象(3)s ...

  9. C#读取Excel数据操作大全

    苦丁茶 发表于 2014-02-10 12:58:00 | 分类标签: ASP.NET 读取Excel 本文介绍下,用C#读取excel数据的例子,包括读取整个工作薄的数据.读取工作薄选定区域中的数据 ...

  10. elixir 调用erlang 代码

    备注:    项目比较简单,主要是elixir 混合erlang 代码,elixir 调用erlang 模块方法   1. 初始化项目   mix new erlangelixirdemo 项目结构如 ...