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

现在如何给网站做外链百度指数专业版价格

现在如何给网站做外链,百度指数专业版价格,wordpress 左边栏,国家扶持新型环保项目力扣746.使用最小花费爬楼梯【easy】 力扣62.不同路径【medium】 力扣63.不同路径Ⅱ【medium】 力扣343.整数拆分【medium】 力扣96.不同的二叉搜索树【medium】 一、力扣746.使用最小花费爬楼梯【easy】 题目链接:力扣746.使用最小花费爬楼梯 视频链接&#xff1a…

力扣746.使用最小花费爬楼梯【easy】
力扣62.不同路径【medium】
力扣63.不同路径Ⅱ【medium】
力扣343.整数拆分【medium】
力扣96.不同的二叉搜索树【medium】

一、力扣746.使用最小花费爬楼梯【easy】

题目链接:力扣746.使用最小花费爬楼梯
在这里插入图片描述
视频链接:代码随想录
题解链接:灵茶山艾府

1、思路

  • 和前面几道题思路一致,要将问题转化成子问题

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 时间复杂度: O ( n ) O(n) O(n)

  • 空间复杂度:前两个 O ( n ) O(n) O(n) ,第三个优化到 O ( 1 ) O(1) O(1)

2、代码

class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:n = len(cost)# def dfs(i):#     if i <= 1 :#         return 0#     res = min(dfs(i - 1) + cost[i -1], dfs(i - 2) + cost[i - 2])#     return res# return dfs(n)# @cache# def dfs(i):#     if i <= 1:#         return 0#     res = min(dfs(i - 1) + cost[i - 1], dfs(i - 2) + cost[i - 2])#     return res# return dfs(n)# dp = [0] * (n + 1)# dp[0] = dp[1] = 0 # for k in range(2, n + 1):#     dp[k] = min(dp[k - 1] + cost[k - 1], dp[k - 2] + cost[k - 2])# return dp[n]f0 = f1 = 0for i in range(1,n):new_f = min(f0 + cost[i - 1], f1 + cost[i])f0 = f1f1 = new_freturn f1

二、力扣62.不同路径【medium】

题目链接:力扣62.不同路径
在这里插入图片描述
视频链接:代码随想录
题解链接:灵茶山艾府

1、思路

  • 转为子问题

    • 在这里插入图片描述
  • 明确 d p [ i ] [ j ] dp[i][j] dp[i][j] 的含义:表示从 ( 0 , 0 ) (0,0) (0,0) ( i , j ) (i,j) (i,j) 的路径数

  • 状态方程: d p [ i ] [ j ] = d p [ i − 1 ] [ j ] + d p [ i ] [ j − 1 ] dp[i][j] = dp[i-1][j] + dp[i][j-1] dp[i][j]=dp[i1][j]+dp[i][j1]

  • 边界 / 初始值:

    • 用递归时: d f s ( − 1 , j ) = d f s ( i , − 1 ) = 0 , d f s ( 0 , 0 ) = 1 dfs(-1,j) = dfs(i,-1) = 0, dfs(0,0) = 1 dfs(1,j)=dfs(i,1)=0,dfs(0,0)=1
    • 转成dp是:有两种处理方式,生成的矩阵的大小不一致
      • d p [ 0 ] [ 1 ] = 1 dp[0][1] = 1 dp[0][1]=1
      • d p [ i ] [ 0 ] = d p [ 0 ] [ j ] = 1 dp[i][0] = dp[0][j] = 1 dp[i][0]=dp[0][j]=1
  • 时间复杂度: O ( m ∗ n ) O(m * n) O(mn) 状态个数 * 单个状态的计算时间

2、代码

class Solution:def uniquePaths(self, m: int, n: int) -> int:# @cache# def dfs(i, j):#     if i < 0 or j < 0:#         return 0#     if i == 0 and j == 0:#         return 1#     return dfs(i, j - 1 ) + dfs(i - 1, j)# return dfs(m - 1, n - 1)# dp = [[0] * (n + 1) for _ in range(m + 1)]# dp[0][1] = 1# for i in range(m):#     for j in range(n):#         dp[i + 1][j + 1] = dp[i][j + 1] + dp[i + 1][j]# return dp[m][n]dp = [[0] * n for _ in range(m) ]for i in range(m):dp[i][0] = 1for j in range(n):dp[0][j] = 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]

三、力扣63.不同路径Ⅱ【medium】

题目链接:力扣63.不同路径Ⅱ
left =x300
视频链接:代码随想录
题解链接:灵茶山艾府

1、思路

  • 多了障碍物,其他与62一致
  • 碰到障碍物,不可以走,意思就是无效路径,之前的也白搭
  • 所以碰到障碍, d p [ i ] [ j ] = 0 dp[i][j] = 0 dp[i][j]=0
  • 时间复杂度: O ( m ∗ n ) O(m * n) O(mn) 状态个数 * 单个状态的计算时间

2、代码

class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:m, n = len(obstacleGrid), len(obstacleGrid[0])dp = [[0] * (n + 1) for _ in range(m + 1)]dp[0][1] = 1for i, row in enumerate(obstacleGrid):for j, x in enumerate(row):if x == 0:dp[i + 1][j + 1] = dp[i][j + 1] + dp[i + 1][j]return dp[m][n]
class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:m, n = len(obstacleGrid), len(obstacleGrid[0])@cachedef dfs(i,j):if i < 0 or j < 0 or obstacleGrid[i][j]:return 0if i == 0 and j == 0 :return 1return dfs(i - 1, j) + dfs(i, j - 1)return dfs(m - 1, n - 1)
class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:m, n = len(obstacleGrid), len(obstacleGrid[0])dp = [[0] * n for _ in range(m)]for i in range(m):if obstacleGrid[i][0] == 0:  # 遇到障碍物时,直接退出循环,后面默认都是0dp[i][0] = 1else:breakfor j in range(n):if obstacleGrid[0][j] == 0:dp[0][j] = 1else:breakfor i in range(1, m):for j in range(1, n):if obstacleGrid[i][j] == 1:continuedp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]

3、代码问题

  • 在这里插入图片描述

四、力扣343.整数拆分【medium】

题目链接:力扣343.整数拆分
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e7e38c115c89402c837125c1d877f43a.png#pic_ left =x300)

视频链接:代码随想录
题解链接:Krahets

1、思路

  • 利用均值不等式说明 当取等时,乘机最大
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 时间复杂度: O ( 1 ) O(1) O(1)
  • 在这里插入图片描述

2、代码

class Solution:def integerBreak(self, n: int) -> int:if n <= 3:return n - 1a, b = n // 3, n % 3if b == 0:return int(math.pow(3,a))if b == 1:return int(math.pow(3, a - 1) * 4)if b == 2:return int(math.pow(3, a) * 2)

五、力扣96.不同的二叉搜索树【medium】

题目链接:力扣96.不同的二叉搜索树
在这里插入图片描述

视频链接:代码随想录
题解链接:画手大鹏

1、思路

  • d p [ n ] dp[n] dp[n]:n个结点存在二叉排序树的个数

  • f ( i ) f(i) f(i):以i为根的二叉搜索树的个数

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 时间复杂度: O ( n 2 ) O(n^2) O(n2)

2、代码

class Solution:def numTrees(self, n: int) -> int:dp = [0] * (n + 1)dp[0] = 1for i in range(1,n + 1):for j in range(1, i + 1):dp[i] += dp[j-1] * dp[i - j]return dp[n]

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

相关文章:

  • 想开一个外企的网站怎么超做产品营销策略有哪些
  • 设计有什么网站推荐今天的新闻 联播最新消息
  • 姑苏区最新通告重庆seo建站
  • 自已能做网站建设吗长沙市网站制作
  • wordpress仿站教学怎么在网上推广产品
  • WordPress移动站免费的行情网站app
  • 网站中点击链接怎么做的百度广告投放代理商
  • 新洲城乡建设局网站品牌营销公司
  • 广西工程建设质量管理协会网站百度推广怎么登录
  • 做日租都有哪些网站廊坊网站
  • 可信网站认证 服务中心网络服务提供者
  • 网站三级页怎么做成都电脑培训班零基础
  • 网站建设全过程seo站长工具推广平台
  • 哈尔滨网站建设1元钱整站外包优化公司
  • 做电商网站有什么用国内新闻最新消息
  • 做网站运营有趣吗网盘搜索引擎
  • 早期做的网站支持现在的网速吗中国新冠一共死去的人数
  • 在ps做网站分辨率96可以吗免费b站推广网站在线
  • 自建网站推广方式岳阳seo快速排名
  • 郴州网络推广公司排名黄山seo排名优化技术
  • 江西哪里有做电商网站的公司沈阳网络关键词排名
  • 中国建设报官方网站全渠道营销管理平台
  • 做直播网站找哪个优化大师免费安装下载
  • 武汉优化网站网站设计规划
  • 南京网站建设网seo培训班
  • 百度官方营销推广平台官网seo深圳网络推广
  • 网站建设需要注意事项网店代运营一年的费用是多少
  • 专业APP客户端做网站杭州seo网站推广排名
  • 网站-网站建设定制上海网络seo优化公司
  • 做蔬菜配送有什么网站可下载了解如何制作自己的网页链接