加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LC1222.cpp 1.85 KB
一键复制 编辑 原始数据 按行查看 历史
xinanXu 提交于 2023-09-14 14:44 . 1222. 可以攻击国王的皇后
class Solution {
public:
vector<vector<int>> queensAttacktheKing(vector<vector<int>>& queens, vector<int>& king) {
char cheens[8][8];
vector<vector<int>> ret;
memset(cheens, 0, 64);
for (auto& i : queens) {
cheens[i[0]][i[1]] = 1;
}
int i = king[0], j = king[1];
for (int di = 1; i - di >= 0; di++) {
if (cheens[i - di][j]) {
ret.push_back({i - di, j});
break;
}
}
for (int di = 1, dj = 1; i - di >= 0 && j + dj < 8; di++, dj++) {
if (cheens[i - di][j + dj]) {
ret.push_back({i - di, j + dj});
break;
}
}
for (int dj = 1; j + dj < 8; dj++) {
if (cheens[i][j + dj]) {
ret.push_back({i, j + dj});
break;
}
}
for (int di = 1, dj = 1; i + di < 8 && j + dj < 8; di++, dj++) {
if (cheens[i + di][j + dj]) {
ret.push_back({i + di, j + dj});
break;
}
}
for (int di = 1; i + di < 8; di++) {
if (cheens[i + di][j]) {
ret.push_back({i + di, j});
break;
}
}
for (int di = 1, dj = 1; i + di < 8 && j - dj >= 0; di++, dj++) {
if (cheens[i + di][j - dj]) {
ret.push_back({i + di, j - dj});
break;
}
}
for (int dj = 1; j - dj >= 0; dj++) {
if (cheens[i][j - dj]) {
ret.push_back({i, j - dj});
break;
}
}
for (int di = 1, dj = 1; i - di >= 0 && j - dj >= 0; di++, dj++) {
if (cheens[i - di][j - dj]) {
ret.push_back({i - di, j - dj});
break;
}
}
return ret;
}
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化