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

vps搭建网站是什么意思可以进入任何网站的浏览器

vps搭建网站是什么意思,可以进入任何网站的浏览器,网站管理助手4.0 mysql,微信网站制作方案LeetCode 62.不同路径: 文章链接 题目链接:62.不同路径 思路: 动态规划 使用二维数组保存递推结果 ① dp数组及下标含义 dp[i][j]:表明从(0, 0)到下标为(i, j)的点有多少条不同的路径 ② 递推式: 机器人只能向下或向…

LeetCode 62.不同路径:

文章链接
题目链接:62.不同路径

思路:

  1. 动态规划
    使用二维数组保存递推结果
    ① dp数组及下标含义
    dp[i][j]:表明从(0, 0)到下标为(i, j)的点有多少条不同的路径
    ② 递推式:
    机器人只能向下或向右移动,因此dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
    ③ 初始化:
    应当初始化第一行和第一列均为1
for i in range(m)	dp[i][0] = 0	# 第一列
for i in range(n) dp[0][i] = 0	# 第一列

④ 遍历方式:
从左到右,从上往下遍历
⑤ 举例推导
在这里插入图片描述

class Solution:def uniquePaths(self, m: int, n: int) -> int:if m == 1 and n == 1:return 1dp = [[1] * n for _ in range(m)]    # 第一行和第一列路径数都为1dp[0][0] = 1    # 出发点路径数为1for i in range(1, m):for j in range(1, n):dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]

dp数组可以简单为一维数组
按照从左到右,从上到下的遍历顺序
原dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
因此可以简化为一维数组。其中新dp[j]保存的是原dp[i - 1][j]
相当于dp[j]保存的是上一行的数据,从而dp[j] = dp[j] + dp[j - 1]

class Solution:def uniquePaths(self, m: int, n: int) -> int:if m == 1 and n == 1:return 1dp = [1] * nfor i in range(1, m):for j in range(1, n):dp[j] += dp[j - 1]return dp[n - 1]
  1. 数论的方法
    从(0, 0)到(m - 1, n - 1)一共 m + n - 2步,其中m - 1步为向下的。因此只要在m + n - 2中选择 m - 1步向下即可,即求组合C_{m + n - 2} ^ {m - 1}
    不能直接分别计算分子、分母后进行除法运算,会溢出,因此需要一边求分子一边对分子进行除法运算
class Solution:def uniquePaths(self, m: int, n: int) -> int:if m == 1 and n == 1:return 1numerator = 1   # 分子denominator = m - 1     # 分母t = m + n - 2count = m - 1while count:numerator *= twhile denominator != 0 and numerator % denominator == 0:numerator = numerator // denominatordenominator -= 1t -= 1count -= 1return numerator

感悟:

简化dp数组以及使用数论的方法求


LeetCode 63.不同路径Ⅱ:

文章链接
题目链接:63.不同路径Ⅱ

思路:

  1. 使用二维数组保存递推的结果
    ① dp数组及下标的含义:
    dp[i][j]:表示从(0, 0)到(i, j)的移动路径中没有障碍的路径数
    ② 递推式:
    机器人还是只能向下或向右移动,因此
    dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
    但是要求路径中不能有障碍,因此上式只能在(i, j)不为障碍时成立
    ③ 初始化:
    还是初始化横向和纵向的,但是遇到障碍后,后面的dp应当都为0
    在这里插入图片描述
    1)第一种初始化
    dp[i][0] = dp[i - 1]0
dp[0][0] = 1
# 初始化第1列,行同理
for i in range(1, m):if obstacleGrid[i][0] == 0:dp[i][0] = dp[i - 1][0]else:dp[i][0] = 0

2)第二种初始化。
dp最开始时初始化为全0,遍历第1列时,遇到非障碍赋值为1,遇到障碍直接退出

dp = [[0] * n for _ in range(m)]
dp[0][0]
for i in range(1, m):if obstacleGrid[i][0] == 0:dp[i][0] = 1else:break 

④ 遍历方式
从左到右,从上到下
⑤ 举例
在这里插入图片描述
需要注意的是,初始化遍历时,第一种遍历方式dp[0][0] = 1,但是出发点是会有障碍的,因此需要先判断出发点是否有障碍再下一步初始化

class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:if obstacleGrid[0][0] == 1: # 初始位置就有障碍return 0m, n = len(obstacleGrid), len(obstacleGrid[0])dp = [[0] * n for _ in range(m)]    # 初始化为0dp[0][0] = 1# 初始化,遇到有障碍物之后的路径数均为0for i in range(1, m):  # 第0列if obstacleGrid[i][0] == 0:dp[i][0] = dp[i - 1][0]for j in range(1, n):  # 第0行if obstacleGrid[0][j] == 0:dp[0][j] = dp[0][j - 1]# 递推for i in range(1, m):for j in range(1, n):if obstacleGrid[i][j] == 0:dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]
  1. 使用一维数组保存递推的结果
    如果使用一维数组保存递推的结果,实际上一维数组保存的是原二维dp数组中上一行的结果,即一维数组的遍历是按行来的。
    初始化:和二维数组初始化方式相同,但是只初始化第1行
    递推:按行递推遍历时,j从0开始,因为一维数组保存的是原二维数组上一行的结果,因此dp[j] = dp[j] + dp[j - 1]仅在j != 0时成立, j = 0时,dp[j]直接继承上一行的结果不变
class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:if obstacleGrid[0][0] == 1:return 0m, n = len(obstacleGrid), len(obstacleGrid[0])dp = [0] * ndp[0] = 1for j in range(1, n):if obstacleGrid[0][j] == 0:dp[j] = 1else:breakfor i in range(1, m):for j in range(n):if obstacleGrid[i][j] == 1:dp[j] = 0elif j != 0:dp[j] += dp[j - 1]return dp[n - 1] 

感悟:

将二维dp数组降为一维dp数组


学习收获:

有障碍时对应的dp数组如何初始化,以及递推式如何变化。
以及将原本的二维dp数组降为一维dp数组时,遍历的话 j 从0开始

http://www.tj-hxxt.cn/news/99405.html

相关文章:

  • 江西做网站公司腾讯企点app
  • 做电商网站价格手机百度app免费下载
  • 百度网站推广外包上海网络推广公司网站
  • 长沙网站制作多少钱线上招生引流推广方法
  • 成都市建设部官方网站网站自动推广软件
  • 富锦建设局网站百度平台商家订单查询
  • wordpress 锚搜索引擎seo关键词优化
  • 网站建设在微信里打广告内容网站关键词推广优化
  • 网站开发的几个步骤seo批量建站
  • 酒泉市建设局网站招标办滁州网站seo
  • wordpress 应用商店模板网站优化关键词公司
  • 鄱阳网站建设seo网络推广技术
  • 西安搬家公司价目表聊石家庄seo
  • 网站东莞优化建设搜狗站长平台打不开
  • 二手车网站模板建设友情链接是外链吗
  • 西青网站开发技术培训
  • 推广赚钱的app有哪些石嘴山网站seo
  • asp做的网站数据库在哪里金城武重庆森林经典台词
  • 建网站找那家好免费发布软文广告推广平台
  • 合肥网站建设模块买卖友链
  • 预定型网站有哪些想卖产品怎么推广宣传
  • 深圳航空人工服务电话百度seo推广优化
  • 金阳建设集团网站数据分析师报考条件
  • 销售网站建设工资多少app投放渠道有哪些
  • 中山网站建设找阿 n 22022年列入传销组织最新骗法
  • 重庆市建设项目环境申报表网站网页版登录入口
  • 淘宝联盟合作网站api2024年1月新冠高峰
  • 微信如何做微商城网站建设企业关键词优化推荐
  • 最新新闻热点事件2021年7月seo软文代写
  • 免费建网站那个好网奇seo培训官网