ok
看题
很简单,就是给你一个n*m的矩阵,再给你一个坐标,然后从小到大输出这个矩阵中与这个坐标距离的坐标。
看代码:
class Solution {
public:
vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) {
vector<vector<vector<int>>> map (200);
//制造一个人为的map函数,但是不会因为key值相同而覆盖。
vector<vector<int>> res;
//用于存放输出坐标
for (int i = 0; i < R; ++i) {
for (int j = 0; j < C; ++j) {
//遍历坐标
int dis = abs(i - r0) + abs(j - c0);
//以每个坐标与给定坐标的横纵相差的绝对值的和为key
map[dis].push_back(vector<int> {i, j});
//存放当前的坐标
}
}
for (int i = 0; i < map.size(); ++i) {
for (int j = 0; j < map[i].size(); ++j) {
res.push_back(map[i][j]);
//循环放入坐标
}
}
return res;
//返回坐标数组
}
};
加油吧