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

个人网站需要备案吗孝昌网站建设

个人网站需要备案吗,孝昌网站建设,有赞微商城官网登入,南京领动做网站怎么样Day29 动态规划part02 LeetCode 62.不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” &…

Day29

动态规划part02

LeetCode 62.不同路径

题目描述

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

示例

输入:m = 3, n = 7
输出:28

题目链接

https://leetcode.cn/problems/unique-paths/

思路
  1. dp数组及下标含义

dp[i][j], 走到第i行第j列处的路径条数

  1. 递推公式
dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
  1. 初始化

第一行和第一列都只有一种方式抵达

解决代码
class Solution {public int uniquePaths(int m, int n) {//dp[i][j] = dp[i - 1][j] + dp[i][j - 1]int[][] dp = new int[m][n];for (int i = 0; i < m; i++){dp[i][0] = 1;}for (int i = 0; i < n; i++) {dp[0][i] = 1;}for (int i = 1; i < m; i++) for (int j = 1; j < n; j++) {dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}return dp[m - 1][n - 1];}
}

LeetCode 63. 不同路径 II

题目描述

给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。

网格中的障碍物和空位置分别用 10 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。

返回机器人能够到达右下角的不同路径数量。

测试用例保证答案小于等于 2 * 109

示例

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:

  1. 向右 -> 向右 -> 向下 -> 向下
  2. 向下 -> 向下 -> 向右 -> 向右

题目链接

https://leetcode.cn/problems/unique-paths-ii/description/

思路
  1. dp数组及下标含义

dp[i][j], 走到第i行第j列处的路径条数

  1. 递推公式
if (obstacleGrid[i][j] == 1)dp[i][j] = 0;
elsedp[i][j] = dp[i - 1][j] + dp[i][j - 1];
  1. 初始化

第一行和第一列都只有一种方式抵达且遇到有障碍, 之后的都无法抵达

解决代码
class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length, n = obstacleGrid[0].length;int[][] dp = new int[m][n];for (int i = 0; i < m; i++) {if (obstacleGrid[i][0] == 1)break;dp[i][0] = 1;}for (int j = 0; j < n; j++) {if (obstacleGrid[0][j] == 1)break;dp[0][j] = 1;}for (int i = 1; i < m; i++)for (int j = 1; j < n; j++) {if (obstacleGrid[i][j] == 1)dp[i][j] = 0;elsedp[i][j] = dp[i - 1][j] + dp[i][j - 1];}return dp[m - 1][n - 1];}
}

LeetCode 343.整数拆分

题目描述

给定一个正整数 n ,将其拆分为 k正整数 的和( k >= 2 ),并使这些整数的乘积最大化。

返回 你可以获得的最大乘积

示例

输入: n = 10
输出: 36
解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。

题目链接

https://leetcode.cn/problems/integer-break/

思路
  1. dp数组及下标含义

拆分n所能获得的最大乘积

  1. 递推公式
dp[i] = Math.max(dp[i], Math.max(j * dp[i - j], j * (i - j)))
//i为需要被拆分的数, j为当前拆分大小
  1. 初始化

2只能拆分为1 + 1, 所以dp[2] = 1; 小于2的情况没有意义

解决代码
class Solution {public int integerBreak(int n) {int[] dp = new int[n + 1];dp[2] = 1;for (int i = 3; i <= n; i++)for (int j = 1; j < i; j++) {dp[i] = Math.max(dp[i], Math.max(dp[i - j] * j, j * (i - j)));}return dp[n];}
}

LeetCode 96.不同的二叉搜索树

题目描述

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

示例

输入:n = 3
输出:5

题目链接

https://leetcode.cn/problems/unique-binary-search-trees/submissions/617446590/

思路
  1. dp数组及下标含义

节点值从 1n 互不相同的 二叉搜索树的个数

  1. 递推公式

根节点为1, 则共有 dp[0] * dp[n - 1]种

根节点为2, 则有dp[1] * dp[n - 2]种

所以dp[n] += dp[j - 1] * dp[n - j];

n为总节点个数

j∈[1, n]

dp[j - 1] :左子树为j - 1个节点的二叉搜索树个数

dp[n - j]:右子树为n - j个节点的二叉搜索树个数

  1. 初始化

dp[0] = 1, dp[1] = 1

解决代码
class Solution {public int numTrees(int n) {int[] dp = new int[n + 1];dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++)for (int j = 1; j <= i; j++) {dp[i] += dp[i - j] * dp[j - 1];}return dp[n];}
}

http://www.dtcms.com/a/433784.html

相关文章:

  • xiu主题做的网站易捷网站内容管理系统漏洞
  • 自己做项目的网站wordpress添加ppt
  • 国际网站怎么样做网站文件大小
  • 怎么更改网站备案信息吗贺岁币在建设银行那个网站预约
  • 宁波网站建设在线网站还没建设好可以备案吗
  • 医院网站建设存在问题歌曲做网站背景音乐 侵权
  • 常熟有哪些网站建设公司平面设计师招聘广告文案
  • 做网站公司 深圳信科公司网站建设价格多少
  • wordpress迁站网站能给企业带来什么
  • 小说网站如何做书源如何制作钓鱼网站
  • 温州市建设工程质量安全管理总站卓越亚马逊网站建设目的
  • 网站改版优化深圳住房和建设局网站轮候大厅
  • dw做的网站怎么去掉甘肃省临夏州建设局网站
  • 做外贸什么网站比较好南通专业网站建设
  • 网站建设群号已将绑定域名给另一个网站
  • 网站建设费可以计入办公费用么自定义页面设计模板
  • 东莞手机手机端网站建设杭州做网站 做小程序
  • 手机网站外链绵阳网站建设多少钱
  • 东莞手机网站建设怎么选教育平台小程序
  • 国外活动策划网站网站开发 手机 验证码
  • 招聘网站开发教程下载购物app
  • 求个没封的网站2022wordpress微信查看密码破解
  • 软文新闻发布网站门户设计
  • 做动画的动作库网站沈阳网站制作公司云蓝图
  • 网站建设项目资金申请爱尔眼科医院集团
  • 网站设计 网站建设 手机网站建设百度开车关键词
  • 网站主页排版网站建设比较牛的企业
  • 江苏城乡建设部网站wordpress主题生成工具
  • 买高端品牌网站阳江网络公司
  • 可视化网站模板编辑软件网站开发 源代码