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. C#与sqlserver开发问题

    最近不停的在考虑C#读取数据性能问题第一种使用ado拼接sql连接数据库第二种使用ado调用存储过程第三种使用entityframework加linq第四种使用反射IList<T> 1.从 ...

  2. selenium-java,cookie登陆

    方法 public void login(WebDriver WebDriver,String cookie1[],String cookie2[]) throws ParseException{// ...

  3. Ubuntu终端远程连接linux服务器

    SSH是一个远程接入软件,可以让你想坐在计算机前面一样操作计算机.SSH使用加密方式传输数据,是一种非常安全的工作方式 步骤如下: 前提:如果没有安装ssh的话请  sudo apt-get inst ...

  4. BZOJ2038 2009国家集训队 小Z的袜子(hose) 【莫队】

    BZOJ2038 2009国家集训队 小Z的袜子(hose) Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼 ...

  5. tableau-详细级别表达式——2、阵列分析

    tableau做阵列分析 合作时间越长的客户对销售额的贡献越大吗? 下面的视图按照客户首次购买的年份将客户分组,以便对比各个阵列的年度销售贡献额. 每个客户的最早订单日期将体现出首次购买日期.不过,由 ...

  6. objectForKey与valueForKey在NSDictionary中的差异

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

  7. C#-StructLayoutAttribute(结构体布局)

    struct实例字段的内存布局(Layout)和大小(Size) 在C/C++中,struct类型中的成员的一旦声明,则实例中成员在内存中的布局(Layout)顺序就定下来了,即与成员声明的顺序相同, ...

  8. 错误:Authentication with old password no longer supported, use 4.1 style passwords.

    今天重新装了系统,mysql connector 使用了官网的最新版本(6.8.3). 启动项目出现标题中的错误.原因大家谷歌. 解决方法,使用低版本的 connector. 我使用的是 6.5.6 ...

  9. sqlite3添加、修改列名(转)

    sqlite3添加.修改列名http://blog.163.com/yi_xiaoluo@126/blog/static/72090439201161533941528/SQLite如何删除,修改.重 ...

  10. coding style 的两点

    通俗介绍coding style两点建议: 模块划分 这个如果做得不好,简直不能忍.有的代码非常莫名其妙,有些东西本身不复杂,非要将其拆成好几个部分,然后做成一个一个碎散的模块,这样并不好.举个例子, ...