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