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

网站后台被挂木马网站seo外包靠谱吗

网站后台被挂木马,网站seo外包靠谱吗,静态网页怎么做网站,电子工程网络通信的专业课算法思想与代码详解 这段代码采用的是**动态规划(Dynamic Programming)**的思想,用来解决“120. 三角形最小路径和”问题。动态规划通过将问题分解成更小的子问题,并通过保存子问题的解来避免重复计算,从而提高效率。…

在这里插入图片描述

算法思想与代码详解

这段代码采用的是**动态规划(Dynamic Programming)**的思想,用来解决“120. 三角形最小路径和”问题。动态规划通过将问题分解成更小的子问题,并通过保存子问题的解来避免重复计算,从而提高效率。


算法核心思路
  1. 从底向上计算(Bottom-Up Approach)

    • 因为我们要求从顶点到底边的最小路径和,可以从底边开始,逐步向上计算每一层的最优解。
    • 每个位置的最小路径和,取决于当前值和下一层两个可能的相邻路径值中的较小者。
  2. 状态表示(DP数组)

    • 使用一个一维数组 dp 来保存“从当前层到底边的最小路径和”。
    • dp[j] 表示从当前层位置 j 到底边的最小路径和。
  3. 状态转移方程

    • 对于某一层的节点 triangle[i][j],它的最小路径和为:
      [
      dp[j] = \min(dp[j], dp[j + 1]) + triangle[i][j]
      ]
    • dp[j] 表示当前位置 j 往下的最小路径,dp[j+1] 表示下一个位置 j+1 往下的最小路径。
  4. 最终结果

    • 计算完成后,dp[0] 即为从三角形顶点到底边的最小路径和。

代码解读
public int minimumTotal(List<List<Integer>> triangle) {int n = triangle.size();  // 三角形的层数int[] dp = new int[n];    // 用一维数组保存动态规划结果// 初始化:将 dp 数组赋值为最后一层的值for (int i = 0; i < n; i++) {dp[i] = triangle.get(n - 1).get(i);}// 从倒数第二层开始,向上计算每层的最小路径和for (int i = n - 2; i >= 0; i--) {for (int j = 0; j <= i; j++) {// 动态规划状态转移:当前点的最小路径和dp[j] = Math.min(dp[j], dp[j + 1]) + triangle.get(i).get(j);}}// 最终答案存储在 dp[0]return dp[0];
}

运行流程

以输入 triangle = [[2], [3, 4], [6, 5, 7], [4, 1, 8, 3]] 为例:

  1. 初始化

    • 将最后一层 [4, 1, 8, 3] 赋值到 dp 数组中:
      [
      dp = [4, 1, 8, 3]
      ]
  2. 从倒数第二层开始计算

    • 第 3 层 ([6, 5, 7]):

      • ( dp[0] = \min(4, 1) + 6 = 7 )
      • ( dp[1] = \min(1, 8) + 5 = 6 )
      • ( dp[2] = \min(8, 3) + 7 = 10 )
        更新后:
        [
        dp = [7, 6, 10, 3]
        ]
    • 第 2 层 ([3, 4]):

      • ( dp[0] = \min(7, 6) + 3 = 9 )
      • ( dp[1] = \min(6, 10) + 4 = 10 )
        更新后:
        [
        dp = [9, 10, 10, 3]
        ]
    • 第 1 层 ([2]):

      • ( dp[0] = \min(9, 10) + 2 = 11 )
        更新后:
        [
        dp = [11, 10, 10, 3]
        ]
  3. 最终结果

    • 返回 dp[0],即最小路径和为 11

时间和空间复杂度
  1. 时间复杂度

    • 外层循环从底层到顶层,共 (n-1) 次。
    • 内层循环每层最多运行 (i+1) 次,整体为 (O(n^2))。
    • 总时间复杂度: (O(n^2))。
  2. 空间复杂度

    • 使用了一个一维数组 dp,大小为 (n)。
    • 总空间复杂度: (O(n))。

总结

这段代码通过动态规划的思想,从底向上逐层计算路径和,用一个一维数组优化了空间开销,避免了重复计算,具有较高的效率,适用于求解此类逐层递归累加的问题。

java 实现

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n = triangle.size();int[] dp = new int[n];for(int i = 0; i < n; i++) {dp[i] = triangle.get(n - 1).get(i);}for(int i = n - 2; i >= 0; i--) { // i 自底向上for(int j = 0; j <= i; j++) { // j 对当前行从左到右遍历, 当 j == i 时,该行的dp[i]值得以确定dp[j] = Math.min(dp[j], dp[j + 1]) + triangle.get(i).get(j);}}return dp[0];}
}
http://www.ds6.com.cn/news/70963.html

相关文章:

  • 网站建设有哪些项目品牌网站建设公司
  • vs简单的网站开发网络seo哈尔滨
  • 深圳外贸公司前十名seo概念
  • 企业网站搭建步骤seo顾问多少钱
  • 牛天下网站做的怎么样长沙seo关键词
  • 付费抽奖网站怎么做抖音账号权重查询入口
  • 百度 手机网站收录搜索引擎优化的特点
  • 深圳工商注册公司流程手机优化助手
  • 静态网站制作wordpress模版五年级上册语文优化设计答案
  • 个人经营网站 办理搜索关键词是什么意思
  • 天津网站建设制作沈阳网站关键词排名
  • 教育培训网站排名西安百度推广开户多少钱
  • 云南网站建设方法app推广引流方法
  • 上海网站推广优化公司经典广告语
  • 龙岩建设局网站深圳网站设计小程序
  • 西宁网站设计建设精准营销的三要素
  • 航天基地规划建设局网站百度空间登录
  • 免费一键网站seo关键词排名技术
  • 江西省建设招标网站如何做网站优化
  • 后台网站怎么做视频一起来看在线观看免费
  • 盐城网站建设网站制作推广廊坊今日头条新闻
  • 婚纱摄影网站排名开鲁视频
  • 重庆南岸营销型网站建设公司哪家专业设计网站排行榜前十名
  • 周口哪里有做网站的网上做广告推广
  • 网站收录大幅度下降大型门户网站建设
  • 微商城网站建设多少钱制作网页app
  • 做网站哪个软件好用灰色词快速排名方法
  • 凡科建站好用吗营销网站建设门户
  • 知乎怎么做自己网站推广产品百度在线识图
  • 邢台专业网站建设公司推荐外包优化网站