台前网站建设费用免费国外医疗静态网站模板下载
2026/6/20 11:22:42 网站建设 项目流程
台前网站建设费用,免费国外医疗静态网站模板下载,驻马店app和网站开发公司,网站建设的文件一、题目描述二、算法原理思路#xff1a;BFS 算法1#xff09;找到图中不是0#xff0c;1值#xff0c;用个二维数组来存储他们的下标2#xff09;排序#xff0c;根据下标对应的值的大小升序3#xff09;升序#xff1a;1 - 2 - 3......... 的本质就是 1 —BFS 算法1找到图中不是01值用个二维数组来存储他们的下标2排序根据下标对应的值的大小升序3升序1 - 2 - 3......... 的本质就是 1 — 2 的最短路径2—— 3 的最短路径等所以剩下的BFS 算法的老套路三、代码实现class Solution { int dx[4] {0,0,-1,1}; int dy[4] {1,-1,0,0}; typedef pairint,int PII; int wight; int hight; public: int cutOffTree(vectorvectorint ft) { wight ft.size(); hight ft[0].size(); vectorPII index;//存储树的坐标 for(int i 0; i wight; i) { for(int j 0; j hight; j) { if(ft[i][j] 1) index.push_back({i,j}); } } sort(index.begin(),index.end(),[](PII x,PII y){//根据树的高度升序 return ft[x.first][x.second] ft[y.first][y.second]; }); int bx 0,by 0;//起始点值 int total 0; for(auto [ex,ey] : index)//终点值 { int sep BFS(ft,bx,by,ex,ey);//查找目的值的步数 if(sep 0) return -1;//找不到 total sep; bx ex;//更新起点值 by ey; } return total; } int BFS(vectorvectorint ft,int bx,int by,int ex,int ey) { //BFS 算法 if(bx ex by ey) return 0;//有可能遍历到起始值 queuePII que; que.push({bx,by});//起点值 int ret 0; bool vis[51][51];//标记是否遍历过入 queue 的下标 memset(vis,false,sizeof(vis));//清空 vis[bx][by] true;//起点值已经遍历过了 while(que.size()) { int size que.size(); ret; while(size--)// 层数 { auto [x,y] que.front(); que.pop(); for(int i 0; i 4; i)// 上下左右遍历 { int a x dx[i]; int b y dy[i]; if(a 0 b 0 a wight b hight ft[a][b] vis[a][b] false) { if(a ex b ey) { return ret;// 找到目标值 } que.push({a,b});//更新 vis[a][b] true; } } } } return -1;//找不到 } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询