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

南昌网站搭建互联网营销培训平台

南昌网站搭建,互联网营销培训平台,织梦做的网站怎么发布,自己买一台服务器做自己的网站62.不同路径 62. 不同路径 - 力扣(LeetCode) 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。 代码随想录 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_b…

62.不同路径

62. 不同路径 - 力扣(LeetCode)

本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。

代码随想录

视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili

dp数组含义:从m*n格子左上角到右上角有几种走法

递推公式:dp[i][j] = dp[i - 1][j] + dp[i][j - 1];

初始化:dp[i][1] = 1  dp[1][i] = 1 

遍历顺序:从左往右

class Solution {public int uniquePaths(int m, int n) {int[][] dp = new int[m + 1][n + 1];for(int i = 1;i < m + 1;i++){dp[i][1] = 1;}for(int i = 1;i < n + 1;i++){dp[1][i] = 1;}for(int i = 2;i < m + 1;i++){for(int j = 2;j < n + 1;j++){dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}return dp[m][n];}
}

63. 不同路径 II

63. 不同路径 II - 力扣(LeetCode)

https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.html

视频讲解:动态规划,这次遇到障碍了| LeetCode:63. 不同路径 II_哔哩哔哩_bilibili

dp数组含义:从当前位置到目标位置有几种走法

递归公式:dp[i][j] = dp[i + 1][j] + dp[i][j + 1];

初始化:n - 1列 m - 1行,从左向右从上到下找到最后一个出现的障碍,障碍和之前的dp都是0

其他位置如果有障碍,dp也是0

遍历顺序:从右向左,从下到上

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[][] dp = new int[m][n];int mem = -1;//初始化n - 1列for(int i = 0;i < m;i++){if(obstacleGrid[i][n - 1] == 1){mem = i;dp[i][n - 1] = 0;}else{dp[i][n - 1] = 1;}}if(mem != -1){for(int i = 0;i < mem;i++){dp[i][n - 1] = 0;}}mem = -1;//初始化m - 1行for(int i = 0;i < n;i++){if(obstacleGrid[m - 1][i] == 1){mem = i;dp[m - 1][i] = 0;}else{dp[m - 1][i] = 1;}}if(mem != -1){for(int i = 0;i < mem;i++){dp[m - 1][i] = 0;}}for(int i = m - 2;i >= 0;i--){for(int j = n - 2;j >= 0;j--){//碰到障碍就是0种走法if(obstacleGrid[i][j] == 1)dp[i][j] = 0;//从右向左遍历else dp[i][j] = dp[i + 1][j] + dp[i][j + 1];}}return dp[0][0];}
}

随想录的,dp的含义是从00到该目标位置有几种走法,从左向右遍历

初始化第一行第一列,没有障碍物赋1,只要遇到一个障碍物就赋0,后面都是0

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[][] dp = new int[m][n];//如果在起点或终点出现了障碍,直接返回0if (obstacleGrid[m - 1][n - 1] == 1 || obstacleGrid[0][0] == 1) {return 0;}for (int i = 0; i < m && obstacleGrid[i][0] == 0; i++) {dp[i][0] = 1;}for (int j = 0; j < n && obstacleGrid[0][j] == 0; j++) {dp[0][j] = 1;}for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {dp[i][j] = (obstacleGrid[i][j] == 0) ? dp[i - 1][j] + dp[i][j - 1] : 0;}}return dp[m - 1][n - 1];}
}
  1. 整数拆分 

343. 整数拆分 - 力扣(LeetCode)

代码随想录

视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili

class Solution {public int integerBreak(int n) {if(n == 2)return 1;int[] dp = new int[n + 1];dp[2] = 1;dp[3] = 2;int temp = 0;for(int i = 3;i < n + 1;i++){for(int j = 1;j <= i/2;j++){dp[i] = Math.max(j * dp[i - j],j*(i - j));dp[i] = Math.max(dp[i],temp);temp = dp[i];}}return dp[n];}
}
  1. 不同的二叉搜索树 (跳过)

本题思路并不容易想,一刷建议可以跳过。 如果学有余力,可以看视频理解一波。

代码随想录

视频讲解:动态规划找到子状态之间的关系很重要!| LeetCode:96.不同的二叉搜索树_哔哩哔哩_bilibili

http://www.dtcms.com/wzjs/143991.html

相关文章:

  • 怎吗做网站挣钱百度一下浏览器下载安装
  • java购物网站开发流程企业seo推广
  • 上哪儿找做网站肇庆疫情最新情况
  • app快速生成平台在线seo短视频
  • 网站黄金比例自己搭建一个网站
  • 每日新闻最新消息seo职业技能培训班
  • 简洁文章网站模板下载2023必考十大时政热点
  • 做国外销售都上什么网站互联网营销做什么
  • 宾馆的网站回款如何做分录最近大事件新闻
  • 购物网站后台怎么做百度在线客服人工服务
  • newedge wordpress搜索引擎的优化方法
  • 微信公众号和网站建设方案百度一下百度搜索网站
  • 北京住房城乡建设委网站百度品牌广告收费标准
  • 网站搭建书籍推荐郑州网站建设方案
  • 哪个网站可以免费做国外陕西网站推广公司
  • python做的网站深圳seo培训
  • 长沙做企业网站的公司百度推广费用报价单
  • 共和网站建设公司视频剪辑培训机构
  • app网站制作不受国内限制的浏览器下载
  • 做网站添加mp3百度自媒体注册入口
  • 深圳网站建设_请到中投网络收录查询站长工具
  • 临沂建设规划局网站宁波seo推广哪家好
  • 容桂网站建设联系方式磁力bt种子搜索神器
  • 自己做的网站怎样对接支付宝数据分析
  • 建立网站服务器seo教程培训班
  • 网站建设与管理 期末竞价代运营外包公司
  • 甘肃省住房和城乡建设厅官方网站关键词排名优化网站
  • 全球网站排名南京seo网站管理
  • 英德市住房城乡建设局网站网络推广公司怎么找客户
  • 短期网站建设培训班谷歌浏览器手机版官网下载