详见:https://leetcode.com/problems/diagonal-traverse/description/

C++:

class Solution {
public:
vector<int> findDiagonalOrder(vector<vector<int>>& matrix)
{
if (matrix.empty() || matrix[0].empty())
{
return {};
}
int m = matrix.size(), n = matrix[0].size(), r = 0, c = 0, k = 0;
vector<int> res(m * n);
vector<vector<int>> dirs{{-1,1}, {1,-1}};
for (int i = 0; i < m * n; ++i)
{
res[i] = matrix[r][c];
r += dirs[k][0];
c += dirs[k][1];
if (r >= m)
{
r = m - 1;
c += 2;
k = 1 - k;
}
if (c >= n)
{
c = n - 1;
r += 2;
k = 1 - k;
}
if (r < 0)
{
r = 0;
k = 1 - k;
}
if (c < 0)
{
c = 0;
k = 1 - k;
}
}
return res;
}
};

参考:http://www.cnblogs.com/grandyang/p/6414461.html

最新文章

  1. 获取图片工具类:BitmapUtil
  2. MATLAB - 练习程序,求灰度图像均值、最大、最小数值
  3. 关于 jquery select2 多个关键字 模糊查询的解决方法
  4. codeforce Codeforces Round #201 (Div. 2)
  5. [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
  6. js-ajax实现获取xmlHttp对象
  7. 【HDOJ】1329 Hanoi Tower Troubles Again!
  8. C# 杨辉三角形算法
  9. 新闻动态切换图片html(flash)
  10. Linux下实现视频读取(二)---camera參数设定
  11. transform,transtion属性
  12. C# WPF 通过委托实现多窗口间的传值
  13. [转]ERROR: http://rancherserver/v1 is not accessible
  14. WinForm DataGridView 绑定泛型List(List&lt;T&gt;)/ArrayList不显示的原因和解决
  15. JUnit5 快速指南
  16. QWidget扩充父子关系
  17. c# Excel 行高、列宽、合并单元格、单元格边框线、冻结
  18. 查看服务器系统资源(cpu,内容)利用率前几位的进程的方法
  19. To B运营和To C运营到底有什么区别?
  20. DQN(Deep Reiforcement Learning) 发展历程(三)

热门文章

  1. Axure Base 09 带遮罩层的弹出框
  2. (转)React Native 使用react-native-image-picker库实现图片上传功能
  3. iOS 中代码获取当前版本号
  4. GNU Makeflie
  5. (C/C++)register关键字
  6. POJ2752 Seek the Name, Seek the Fame —— KMP next数组
  7. IOS中的沙盒机制
  8. 【BZOJ 3223】 文艺平衡树
  9. PDB文件说明
  10. Linux终端那件事儿