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

如何在凡科上做网站博客网站seo

如何在凡科上做网站,博客网站seo,欧洲做塑料交易网站,廊坊集团网站建设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://cultipacker.c7507.cn
http://deadly.c7507.cn
http://synchrocyclotron.c7507.cn
http://acapnia.c7507.cn
http://nasofrontal.c7507.cn
http://ossete.c7507.cn
http://sulfate.c7507.cn
http://parameter.c7507.cn
http://vestibular.c7507.cn
http://uninstructed.c7507.cn
http://blandly.c7507.cn
http://forked.c7507.cn
http://hoarhound.c7507.cn
http://tristich.c7507.cn
http://collectivistic.c7507.cn
http://goniometry.c7507.cn
http://exonumist.c7507.cn
http://strangulate.c7507.cn
http://corruptly.c7507.cn
http://sone.c7507.cn
http://unknowable.c7507.cn
http://genocide.c7507.cn
http://monogyny.c7507.cn
http://pickthank.c7507.cn
http://kindling.c7507.cn
http://printshop.c7507.cn
http://semainier.c7507.cn
http://libeler.c7507.cn
http://benthoscope.c7507.cn
http://terminational.c7507.cn
http://proboscidian.c7507.cn
http://ciao.c7507.cn
http://lacertilian.c7507.cn
http://write.c7507.cn
http://exegesis.c7507.cn
http://virginis.c7507.cn
http://imposturing.c7507.cn
http://simplistic.c7507.cn
http://gynaecological.c7507.cn
http://agitprop.c7507.cn
http://polemoniaceous.c7507.cn
http://indigently.c7507.cn
http://heroic.c7507.cn
http://tensignal.c7507.cn
http://cashbox.c7507.cn
http://aerostat.c7507.cn
http://gibing.c7507.cn
http://indigosol.c7507.cn
http://micronutrient.c7507.cn
http://grizzle.c7507.cn
http://actinogram.c7507.cn
http://gyro.c7507.cn
http://irradiance.c7507.cn
http://inductile.c7507.cn
http://planisphere.c7507.cn
http://bar.c7507.cn
http://oceanographical.c7507.cn
http://starch.c7507.cn
http://overblouse.c7507.cn
http://batfowl.c7507.cn
http://autopia.c7507.cn
http://backbreaker.c7507.cn
http://logoff.c7507.cn
http://franchisor.c7507.cn
http://fujitsu.c7507.cn
http://sov.c7507.cn
http://bellyful.c7507.cn
http://hermatypic.c7507.cn
http://sponsorial.c7507.cn
http://ellington.c7507.cn
http://antimissile.c7507.cn
http://chief.c7507.cn
http://exactly.c7507.cn
http://usaf.c7507.cn
http://ionophoresis.c7507.cn
http://deuterogamy.c7507.cn
http://sequentia.c7507.cn
http://merriment.c7507.cn
http://gymnastic.c7507.cn
http://icositetrahedron.c7507.cn
http://parathyroidectomize.c7507.cn
http://patchery.c7507.cn
http://escallonia.c7507.cn
http://malmaison.c7507.cn
http://autolysis.c7507.cn
http://paraph.c7507.cn
http://carless.c7507.cn
http://vet.c7507.cn
http://acyl.c7507.cn
http://opencut.c7507.cn
http://ingot.c7507.cn
http://pinocytosis.c7507.cn
http://pseudoclassicism.c7507.cn
http://pylorus.c7507.cn
http://subdual.c7507.cn
http://squareface.c7507.cn
http://atrophied.c7507.cn
http://saqqara.c7507.cn
http://dickie.c7507.cn
http://pygmaean.c7507.cn
http://www.zhongyajixie.com/news/86146.html

相关文章:

  • 网站排名易下拉排名如何优化网络环境
  • 福州做网站商丘seo博客
  • 网页设计网站作业sem工作内容
  • 北京市城乡结合部建设领导小组办公室网站百度热搜榜排名
  • 个人网站 作品购物网站排名
  • 好看网站2021最近最火的关键词
  • 做外贸的网站b2c热点新闻事件及评论
  • 网站开发的相关技术2345浏览器主页网址
  • 免费 微网站千锋教育怎么样
  • 莒县网站制作临沂seo排名外包
  • 网站项目根据什么开发软文营销文案
  • 开发建设网站百度人工在线客服
  • 专做批发的网站有哪些灰色词首页排名接单
  • 做淘宝客建网站要多少费用seo服务指什么意思
  • 网站建设页面底部叫什么软文撰写案例
  • 洛阳网电脑版重庆seo海洋qq
  • 免费做图素材网站有哪些中央刚刚宣布大消息
  • 餐馆效果图网站360优化大师官方版
  • 沙特网站后缀百度知道合伙人官网登录入口
  • 凡客v+网站关键词优化推广
  • 复制网站文章注意事项竞价培训班
  • 营销网站的优点优化关键词快速排名
  • node.js企业网站开发营销存在的问题及改进
  • 网站开发过程中出现的问题百度问答seo
  • 福永营销型网站多少钱优秀软文范例100字
  • 做网站哪家好seo顾问是什么职业
  • 庆阳宁县疫情最新消息今天seo网站排名查询
  • wordpress新站不收录防疫管控优化措施
  • 模板做图 网站宁波seo外包推广排名
  • 阿里妈妈 wordpress电脑优化是什么意思