关注
#include <iostream>
#include <vector>
#include <sstream>
#include <queue>
using namespace std;
// split 函数 string 变 vector<int>
vector<int> getVec(string str) {
vector<int> res;
stringstream ss(str);
int tem;
while(ss >> tem)
res.push_back(tem);
return res;
}
int main() {
string str;
vector<vector<int>> grid;
while(getline(cin, str))
grid.push_back(getVec(str));
int m = grid.size(), n = grid[0].size(), start, tar, step = 0;
vector<vector<bool>> used(m, vector<bool>(n, false));
// 二维坐标转换成一维坐标,后面操作起来简单
for(int i=0; i<m; i++)
for(int j=0; j<n; j++) {
if(grid[i][j] == 2) start = i*n+j, used[i][j] = true;
if(grid[i][j] == 3) tar = i*n+j;
}
queue<int> que;
que.push(start);
vector<int> dx{0, 0, 1, -1};
vector<int> dy{1, -1, 0, 0};
while(!que.empty()) {
int len = que.size();
for(int i=0; i<len; i++) {
int cur = que.front();
if(cur == tar) {
cout << step << endl;
return 0;
}
que.pop();
for(int j=0; j<4; j++) {
int x = cur/n + dx[j], y = cur%n + dy[j];
if(x<0 || y<0 || x>=m || y>=n || grid[x][y] == 1 || used[x][y])
continue;
used[x][y] = true;
que.push(x*n+y);
}
}
step++;
}
return 0;
}
🤣参考这个
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
_世界和平:可以偷偷吃肉,但是不要在饥饿的人面前一边吃肉一边吧唧嘴还嫌肉不好吃 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
2460次浏览 66人参与
# 刚工作,应该先搞钱or搞成长? #
20754次浏览 159人参与
# 牛客AI体验站 #
15485次浏览 275人参与
# 你觉得第一学历对求职有影响吗? #
229838次浏览 1266人参与
# 找工作中的小确幸 #
80328次浏览 448人参与
# 你觉得技术面多长时间合理? #
168032次浏览 1170人参与
# 实习在多还是在精 #
82680次浏览 509人参与
# 月薪多少能在一线城市生存 #
136334次浏览 898人参与
# 牛友的春节生活 #
10994次浏览 213人参与
# 备战春招/暑实,现在应该做什么? #
7495次浏览 199人参与
# 从夯到拉,锐评职场mentor #
7245次浏览 108人参与
# 实习到现在,你最困惑的一个问题 #
6512次浏览 163人参与
# 春招什么时候投? #
12873次浏览 208人参与
# 制造业的秋招小结 #
143304次浏览 2089人参与
# 电网笔面经互助 #
59642次浏览 476人参与
# 秋招踩过的“雷”,希望你别再踩 #
185624次浏览 1683人参与
# 春节提前走,你用什么理由请假? #
13137次浏览 288人参与
# 距离春招还有一个月,你现在是什么开局? #
9058次浏览 132人参与
# 今年秋招你收到了多少封邮件? #
38231次浏览 280人参与
# 暑期实习什么时候投? #
9257次浏览 197人参与

凡岛公司福利 757人发布