当前位置: 首页 > news >正文

网站的建设与管理自考wordpress 不显示全文

网站的建设与管理自考,wordpress 不显示全文,贵阳手机网站建设,域名注册美橙题目#xff1a; 设想有个机器人坐在一个网格的左上角#xff0c;网格 r 行 c 列。机器人只能向下或向右移动#xff0c;但不能走到一些被禁止的网格#xff08;有障碍物#xff09;。设计一种算法#xff0c;寻找机器人从左上角移动到右下角的路径。 示例#xff1a;…题目 设想有个机器人坐在一个网格的左上角网格 r 行 c 列。机器人只能向下或向右移动但不能走到一些被禁止的网格有障碍物。设计一种算法寻找机器人从左上角移动到右下角的路径。 示例 输入: [   [0,0,0],   [0,1,0],   [0,0,0] ] 输出: [[0,0],[0,1],[0,2],[1,2],[2,2]] 解释:  输入中标粗的位置即为输出表示的路径即 0行0列左上角 - 0行1列 - 0行2列 - 1行2列 - 2行2列右下角 解题思路动态规划  1.先找到可行的路径不可达的坐标点 dp0 2.如果终点的dp不为0说明存在可达的路径 3.那么就从终点往回走找到可以到达起点的路径每走一步都要将坐标添加到res数组中 4.由于是从后往前的所以要将res进行反转 源代码如下 class Solution { public:vectorvectorint pathWithObstacles(vectorvectorint obstacleGrid) {vectorvectorint res;if(obstacleGrid.size()0) return res;//矩阵为空直接返回空数组int mobstacleGrid.size();int nobstacleGrid[0].size();//矩阵的起点和终点不可达则返回空数组if(obstacleGrid[0][0]1||obstacleGrid[m-1][n-1]1) return res;int dp[m][n];//定义动态规划数组dp[0][0]1;//起点位置可达置为1//先找第一列的元素是否可达for(int i1;im;i){//不可达dp置为0if(obstacleGrid[i][0]1) dp[i][0]0;//可达则dp等于上一行的else{dp[i][0]dp[i-1][0];}}//找第一行的元素for(int i1;in;i){if(obstacleGrid[0][i]1) dp[0][i]0;else{dp[0][i]dp[0][i-1];}}//其他剩余元素for(int i1;im;i){for(int j1;jn;j){if(obstacleGrid[i][j]1) dp[i][j]0;else{dp[i][j]max(dp[i-1][j],dp[i][j-1]);}}}//如果终点的dp0说明不能到达终点则返回空数组if(dp[m-1][n-1]0) return res;//以下情况是已经找到路径了只需要把路径添加到res中//从后往前找可以到达的点int im-1,jn-1;while(i!0||j!0){res.push_back({i,j});//往上走int up0;if(i0) updp[i-1][j];//往左走int left0;if(j0) leftdp[i][j-1];//哪个dp值不为0则走哪个方向if(upleft) i--;else j--;}//最后把起点添加到数组中res.push_back({0,0});//再将数组翻转就是正确顺序了reverse(res.begin(),res.end());return res;} }; 解题思路回溯 需要注意的是要添加一个访问数组标记该坐标是否已经被访问过。详解看代码 源代码如下 class Solution { public:bool isfindfalse;//是否已经找到路径void dfs(vectorvectorint obstacleGrid,vectorvectorint res,vectorvectorbool visited,int m,int n,int i,int j){//如果下标i和j越界//如果已经找到路径isfindtrue//如果当前坐标有障碍物//如果当前坐标已访问//遇到以上这些情况 直接返回if(i0||im||j0||jn||isfind||obstacleGrid[i][j]1||visited[i][j]) return;//当前坐标已经到达终点说明找到路径了if(im-1jn-1){isfindtrue;//isfind置为真res.push_back({i,j});//将终点添加到数组中//并返回return;}//其余正常情况每遍历一个坐标就将该坐标标记为已访问visited[i][j]true;res.push_back({i,j});//坐标添加到数组中//递归往下走dfs(obstacleGrid,res,visited,m,n,i1,j);//递归往右走dfs(obstacleGrid,res,visited,m,n,i,j1);//回溯if(!isfind) res.pop_back();}vectorvectorint pathWithObstacles(vectorvectorint obstacleGrid) {vectorvectorint res;int mobstacleGrid.size();int nobstacleGrid[0].size();if(obstacleGrid.size()0) return res;//标记当前坐标是否已经访问过初始值都为falsevectorvectorbool visited(m, vectorbool(n, false));if(obstacleGrid[0][0]1||obstacleGrid[m-1][n-1]1) return res;dfs(obstacleGrid,res,visited,m,n,0,0);return res;} };
http://www.hkea.cn/news/14270817/

相关文章:

  • 万先生网站深圳福田地图
  • 南昌做网站建设公司免费简单门户网站开发
  • 川畅互联咨询 网站建设做室内概念图的网站
  • 当当网站开发系统说明西宁市建设局官方网站
  • 山东网站建设哪里好网盟推广费
  • 建设银行北京市财满街分行网站网站备案号注销的结果
  • 泉州城乡建设网站微网站自己可以做么
  • 北仑做网站免费推广平台排行
  • 广州网站建设程序开发做舞美的好素材网站j
  • ICO网站模板南城网站建设公司案例
  • 表白网站制作源代码网站备案重要吗
  • 网站带后台免费下载网站建设延期通知单
  • 网页制作与网站建设...家乡网页设计作品欣赏
  • 网站建设费 大创wordpress好不好用
  • 品传集团网站建设品牌策划方案设计
  • 天涯论坛网站建设wordpress禁用文章定时发布
  • 做网站ps注意事项大数据工程技术
  • 做网站和app有什么区别上社网站建设
  • 百度网站建设的意义个人网站备案所需材料
  • 弄一个网站要多少钱网站备案 邮寄资料
  • 做汽车配件外贸用什么网站关于网站开发
  • 网站要什么软件做公司网站开发有哪些
  • 合肥企业网站设计制作好一点的网站是怎么做的
  • 注册公司网站的费用网站的优化和推广方案
  • 圣融网站建设成都最新动态
  • 硬件开发网站美御品牌推广
  • 做网站 人员如何将自己做的网站发布到网上
  • 做问卷的网站好游戏运营备案官方网站
  • 海宁网站开发上海网站建设yes404
  • 网站开发前端是什么重庆做网站开发的公司有哪些