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

中国建设银行网站评价网站404页面在哪查看

中国建设银行网站评价,网站404页面在哪查看,顺的网站建设案例,企业网站开发实训目的今天更新动态规划路径问题1#xff0c;后续会继续更新其他有关动态规划的问题#xff01;动态规划的路径问题#xff0c;顾名思义#xff0c;就是和路径相关的问题。当然#xff0c;我们是从最简单的找路径开始#xff01; 动态规划的使用方法#xff1a; 1.确定状态并…今天更新动态规划路径问题1后续会继续更新其他有关动态规划的问题动态规划的路径问题顾名思义就是和路径相关的问题。当然我们是从最简单的找路径开始 动态规划的使用方法 1.确定状态并定义状态数组ij代表什么意思dp[i][j]又是什么意思 2.确定状态转移方程即递推公式 3.确定边界条件并初始化 4.确定遍历顺序 5.状态转移 6.输出结果 文章目录 一、LC 62 不同路径方法一深度优先搜索方法二动态规划二维方法三动态规划一维方法四排列组合 二、LC 63 不同路径II方法一动态规划二维方法二动态规划一维方法三记忆化搜索 三、LC 64 最小路径和方法一动态规划二维方法二动态规划一维 一、LC 62 不同路径 LC 62 不同路径 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish” 。 问总共有多少条不同的路径 方法一深度优先搜索 代码如下 class Solution { private:int dfs(int m,int n,int i,int j){//行或列有至少一个越界if(im||jn) return 0;//到达终点(在竖直方向达到m水平方向达到n也即坐标达到m,n))if(im jn) return 1;//递归搜索左子树和右子树return dfs(m,n,i1,j)dfs(m,n,i,j1);} public:int uniquePaths(int m, int n) {//从根节点开始遍历int cntdfs(m,n,1,1);return cnt;} };方法二动态规划二维 代码如下 /*动态规划的使用方法 1.确定状态并定义状态数组ij代表什么意思dp[i][j]又是什么意思 2.确定状态转移方程即递推公式 3.确定边界条件并初始化 4.确定遍历顺序 5.状态转移 6.输出结果 */ class Solution {public:int uniquePaths(int m, int n) {//定义一个状态数组用来存方法数 int dp[101][101]{0};//初始化状态数组for(int i0;im;i){dp[i][0]1;}for(int j0;jn;j){dp[0][j]1;}//遍历for(int i1;im;i){for(int j1;jn;j){//状态转移dp[i][j]dp[i][j-1]dp[i-1][j];}}//返回结果return dp[m-1][n-1];} };方法三动态规划一维 代码如下 class Solution { public:int uniquePaths(int m, int n) {//定义一维状态数组 int dp[101]{0};//初始化数组值为1即相对于二维数组第一行全是1for(int i0;in;i){dp[i]1;}//遍历for(int i1;im;i){for(int j1;jn;j){//状态转移dp[j]指的是上一行的j,dp[j-1]指的是当前行左边的j//每次状态转移都相当于先将上一行的运算拷贝过来再加上从左面来的方案数dp[j]dp[j-1]dp[j];}}return dp[n-1];} };方法四排列组合 代码如下 class Solution { public:int uniquePaths(int m, int n) {long long numerator 1; // 初始化分子int denominator m - 1; // 初始化分母int count m - 1;//定义分子的乘积项的个数int t m n - 2;//定义分子的最大乘积项while (count--) {//分子累乘count项numerator * (t--);while (denominator ! 0 numerator % denominator 0) {//约分也即除以公因数numerator / denominator;//约去一个公因数denominator--;}}return numerator;} };二、LC 63 不同路径II LC 63 不同路径II 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish”。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径 网格中的障碍物和空位置分别用 1 和 0 来表示。 方法一动态规划二维 代码如下 class Solution { public:int uniquePathsWithObstacles(vectorvectorint obstacleGrid) {//求出二维动态数组的行数int mobstacleGrid.size();//求出二维动态数组的列数int nobstacleGrid[0].size();//定义状态数组int dp[101][101]{0};//边界判断if(obstacleGrid[0][0]1 || obstacleGrid[m-1][n-1]1) return 0;//初始化状态数组dp[0][0]1;//遍历for(int i0;im;i){for(int j0;jn;j){//如果是障碍物则此路不通路径数归零if(obstacleGrid[i][j]1){dp[i][j]0;continue;}//状态转移此处和上面的一样if(i0 j0) dp[i][j]dp[i-1][j]dp[i][j-1];else if(i0) dp[i][j]dp[i-1][j];else if(j0) dp[i][j]dp[i][j-1];//也可以这样写 /*if(obstacleGrid[i][j]0){//状态转移此处和上面的一样if(i0 j0) dp[i][j]dp[i-1][j]dp[i][j-1];else if(i0) dp[i][j]dp[i-1][j];else if(j0) dp[i][j]dp[i][j-1];}}else continue; */}}return dp[m-1][n-1];} };方法二动态规划一维 代码如下 class Solution { public:int uniquePathsWithObstacles(vectorvectorint obstacleGrid) {if (obstacleGrid[0][0] 1)return 0;vectorint dp(obstacleGrid[0].size(),0);//初始化一维状态数组第一行for (int j 0; j dp.size() obstacleGrid[0][j] 0 ; j)if (j 0)dp[j] 1;elsedp[j] dp[j-1];//for (int i 1; i obstacleGrid.size(); i)//行for (int j 0; j dp.size(); j){//列if (obstacleGrid[i][j] 1)dp[j] 0;else if (j ! 0)dp[j] dp[j] dp[j-1];}return dp.back();//返回最后一个状态对应值} };方法三记忆化搜索 代码如下 class Solution { public:int m,n;vectorvectorintmemo;vectorpairint,intdir{{0,1},{1,0}};int uniquePathsWithObstacles(vectorvectorint ob) {nob.size();mob[0].size();if(ob[0][0]1||ob[n-1][m-1]1){return 0;}memo.resize(n,vectorint(m,0));return dfs(ob,0,0);}int dfs(vectorvectorintob,int i,int j){if(memo[i][j]!0){return memo[i][j];}if(in-1jm-1){memo[i][j]1;return 1;}int cur0;for(auto d:dir){int xid.first;int yjd.second;if(x0xny0ymob[x][y]0){curdfs(ob,x,y);}}memo[i][j]cur;return memo[i][j];} };作者Gallant MurdockrFZ 链接https://leetcode.cn/problems/unique-paths-ii/solutions/2466610/dfsji-yi-hua-sou-suo-by-gallant-murdockr-e882/ 来源力扣LeetCode 三、LC 64 最小路径和 LC 64 最小路径和 给定一个包含非负整数的 m x n 网格 grid 请找出一条从左上角到右下角的路径使得路径上的数字总和为最小。 说明每次只能向下或者向右移动一步。 方法一动态规划二维 代码如下 class Solution { public:int minPathSum(vectorvectorint grid) {//定义一个二维状态数组int dp[201][201]{0};//初始化状态数组dp[0][0]grid[0][0];//获得行数和列数int mgrid.size();int ngrid[0].size();for(int i0;im;i){for(int j0;jn;j){//正常情况if(i0 j0){dp[i][j]min(dp[i-1][j],dp[i][j-1])grid[i][j];}//边界条件else if(i0) dp[i][j]dp[i-1][j]grid[i][j];else if(j0) dp[i][j]dp[i][j-1]grid[i][j];}}return dp[m-1][n-1];} };方法二动态规划一维 代码如下 class Solution { public:int minPathSum(vectorvectorint grid) {//获取行数和列数int mgrid.size();int ngrid[0].size();//定义一维状态数组int dp[201]{0};//初始化第一行dp[0]grid[0][0];for(int i1;in;i){dp[i]grid[0][i]dp[i-1];}//状态转移配合滚动数组优化for(int i1;im;i){for(int j0;jn;j){//左边界if(j0) dp[j]grid[i][j];//其他情况else dp[j]min(dp[j-1],dp[j])grid[i][j];}}return dp[n-1];} };我以前没怎么接触过动态规划目前就是每天有空看看题想想解题思路啥的但愿有效果吧
http://www.pierceye.com/news/48984/

相关文章:

  • 石家庄网站建设远策科技网站链群怎么做
  • 自己建设一个网站软件php图书管理系统
  • 总结做网站诊断步骤免费的黄冈网站有哪些平台可以聊天呢
  • 金山郑州阳网站建设活动营销
  • 企业网站建设 百度文库免费google账号注册入口
  • 网站搜索引擎友好性分析网站设计h5
  • 网站开发主要有两个阶段网站的建立与运营
  • wordpress文章美化框网站推广优化开发建设
  • 公司建网站多少钱qcjxkd东莞网页设计
  • 潞城网站建设哈尔滨建工建设
  • 最专业的网站建设组织搭建免费网站
  • 建设网站 证件wordpress会员注册管理系统
  • 打开国外网站很慢企业vi形象设计是什么意思
  • 个人网站的前途seo博客网址
  • 家电维修做网站生意怎么样局域网视频网站搭建
  • 网站服务器设置地点建设施工网络平台
  • 个人做的网站有什么危险吗简单大气好记的公司名
  • 做直播网站收费吗百度推广售后
  • 怎样增加网站会员量深圳设计招聘
  • 做网站赚钱还是做app赚钱正规代运营公司
  • 一个域名可以做多少个二级网站宁波网站建设相信荣胜网络
  • 伪原创php网站镜像同步程序微信怎么制作自己的公众号
  • 成都网站建设028net免费申请qq号不用手机
  • 教育培训类网站模板好的界面建筑网站
  • 上海专业做网站价格seo能从搜索引擎中获得更多的
  • 营口企业网站建设网站建设如何学
  • 学生做爰网站网站建行接口
  • 如何制作自己的网站图?大型网站系统
  • 南昌网站建设公司如何增加网站pr值
  • 网站修改解析怎么做玉环县企业网站建设