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

湛江专业的建站托管做一个什么样的网站

湛江专业的建站托管,做一个什么样的网站,结构设计网站推荐,自己做的网站跳转到购彩大厅目录 1. 问题目标的区别 (1)找到最长的等差数列 (2)统计等差数列的个数 2. 填表顺序的区别 (1)固定倒数第二个数(i) (2)固定倒数第一个数(j&…

目录

1. 问题目标的区别

(1)找到最长的等差数列

(2)统计等差数列的个数

2. 填表顺序的区别

(1)固定倒数第二个数(i)

(2)固定倒数第一个数(j)

3. 核心区别总结

4. 为什么选择不同的固定方式?

5. 总结


1. 问题目标的区别

(1)找到最长的等差数列

  • 目标:找到数组中最长的等差数列的长度。

  • 特点:需要关注的是等差数列的长度,而不是具体的个数。

  • 动态规划状态定义dp[i][j] 表示以 nums[i] 和 nums[j] 结尾的等差数列的长度。

  • 状态转移方程

    dp[i][j] = dp[k][i] + 1;

    其中 k 是满足 nums[k] = a 且 k < i 的下标,a = 2 * nums[i] - nums[j]

(2)统计等差数列的个数

  • 目标:统计数组中所有等差数列的个数

  • 特点:需要关注的是等差数列的数量,而不是长度。

  • 动态规划状态定义dp[i][j] 表示以 nums[i] 和 nums[j] 结尾的等差数列的个数。

  • 状态转移方程

    dp[i][j] += dp[k][i] + 1;

    其中 k 是满足 nums[k] = a 且 k < i 的下标,a = 2 * nums[i] - nums[j]


2. 填表顺序的区别

(1)固定倒数第二个数(i

  • 适用场景:找到最长的等差数列。

  • 填表顺序

    • 外层循环固定 i(倒数第二个数)。

    • 内层循环枚举 j(倒数第一个数)。

  • 原因

    • 在计算 dp[i][j] 时,需要依赖 dp[k][i],其中 k 是 i 的前一个位置。

    • 固定 i 后,可以确保 dp[k][i] 在计算 dp[i][j] 时已经被计算。

  • 示例代码

    for (int i = 1; i < n; i++) { // 固定倒数第二个数for (int j = i + 1; j < n; j++) { // 枚举倒数第一个数int a = 2 * nums[i] - nums[j]; // 计算前一个元素的值if (hash.count(a)) {dp[i][j] = dp[hash[a]][i] + 1; // 更新 dp[i][j]}ret = max(ret, dp[i][j]); // 更新全局最大值}
    }

(2)固定倒数第一个数(j

  • 适用场景:统计等差数列的个数。

  • 填表顺序

    • 外层循环固定 j(倒数第一个数)。

    • 内层循环枚举 i(倒数第二个数)。

  • 原因

    • 在计算 dp[i][j] 时,需要累加所有满足条件的 dp[k][i],其中 k 是 i 的前一个位置。

    • 固定 j 后,可以确保在计算 dp[i][j] 时,所有可能的 dp[k][i] 已经被计算。

  • 示例代码

    for (int j = 2; j < n; j++) { // 固定倒数第一个数for (int i = 1; i < j; i++) { // 枚举倒数第二个数long long a = (long long)nums[i] * 2 - nums[j]; // 计算前一个元素的值if (hash.count(a)) {for (auto k : hash[a]) {if (k < i) {dp[i][j] += dp[k][i] + 1; // 更新 dp[i][j]}}}sum += dp[i][j]; // 累加 dp[i][j] 到 sum}
    }

3. 核心区别总结

区别点固定倒数第二个数(i固定倒数第一个数(j
适用场景找到最长的等差数列统计等差数列的个数
动态规划状态定义dp[i][j] 表示以 nums[i] 和 nums[j] 结尾的等差数列的长度dp[i][j] 表示以 nums[i] 和 nums[j] 结尾的等差数列的个数
状态转移方程dp[i][j] = dp[k][i] + 1dp[i][j] += dp[k][i] + 1
填表顺序外层循环固定 i,内层循环枚举 j外层循环固定 j,内层循环枚举 i
依赖关系依赖 dp[k][i],其中 k 是 i 的前一个位置依赖 dp[k][i],其中 k 是 i 的前一个位置
目标找到最长的等差数列的长度统计所有等差数列的个数

4. 为什么选择不同的固定方式?

  • 固定倒数第二个数(i

    • 适用于最长等差数列问题,因为需要确保在计算 dp[i][j] 时,dp[k][i] 已经被计算。

    • 通过固定 i,可以保证 dp[k][i] 在计算 dp[i][j] 时已经存在。

  • 固定倒数第一个数(j

    • 适用于统计等差数列个数问题,因为需要累加所有可能的 dp[k][i]

    • 通过固定 j,可以确保在计算 dp[i][j] 时,所有可能的 dp[k][i] 已经被计算。


5. 总结

  • 固定倒数第二个数:适用于最长等差数列问题,填表顺序是从左到右、从下到上。

  • 固定倒数第一个数:适用于统计等差数列个数问题,填表顺序是从左到右、从上到下。

两者的选择取决于问题的目标和状态转移方程的依赖关系。通过合理的固定方式,可以确保动态规划的正确性和高效性。


文章转载自:

http://pSsz088J.srjgz.cn
http://YwJdRN9z.srjgz.cn
http://9UWksdLM.srjgz.cn
http://dsoIdMlU.srjgz.cn
http://zsIsMRYo.srjgz.cn
http://Owm4iKq6.srjgz.cn
http://0iTdhw1M.srjgz.cn
http://2Y29ONG8.srjgz.cn
http://aPa2VeHW.srjgz.cn
http://ukJ0ICqd.srjgz.cn
http://lTesH9jX.srjgz.cn
http://ehjZu0OZ.srjgz.cn
http://mWWGnT4j.srjgz.cn
http://XMzCOFA4.srjgz.cn
http://rOhMwxr0.srjgz.cn
http://QvaAsGk5.srjgz.cn
http://3d7YdeCs.srjgz.cn
http://YoBw8dhs.srjgz.cn
http://3Er1L4LA.srjgz.cn
http://YLaFFRQ0.srjgz.cn
http://xKYyT91a.srjgz.cn
http://2JcMCf32.srjgz.cn
http://piY1mI2v.srjgz.cn
http://i6egrC2S.srjgz.cn
http://X3gOp64u.srjgz.cn
http://vg3htoym.srjgz.cn
http://Dr1lXKvm.srjgz.cn
http://IXXffYns.srjgz.cn
http://7k9txv2l.srjgz.cn
http://O78GVNlo.srjgz.cn
http://www.dtcms.com/wzjs/633764.html

相关文章:

  • 网站建设 的类型有哪些dw怎么做网站教程
  • 制作微信网站模板wordpress建企业网站教程
  • 中企动力做的网站后台如何登陆域名备案时网站名称
  • 购物网站开发介绍wordpress美化下载页面
  • 网站建设流程周期wordpress中文破解主题下载
  • 网站建设的收获体会html5手机网站发布
  • 温州网站建设价格技术wordpress 底部悬浮
  • 做公司网站 烟台wordpress 简历主题
  • 做服务的网站吗可以进入任何网站的浏览器
  • 给别人做网站用什么蓝杉互动网站建设
  • idc新人如何做自己的网站网站 按钮 素材
  • 做网站的相关协议西安高校定制网站建设公司推荐
  • 深圳小蚁人网站建设网页设计代码书
  • 国外优秀的平面设计网站企业做电商网站有哪些
  • 销售网站模板东昌府聊城网站优化
  • 成都高新区网站建设娄底建设企业网站
  • 网站打开不了怎样做wordpress添加播放器代码
  • 网站开发亮点长洲网站建设
  • 赣榆网站建设wordpress 首页 摘要 插件
  • 网站建设实训 课程标准学做简单网站视频教程
  • 国内用react做的网站如何建设手机版网站
  • 怎么分析一个网站seo如何做网站宣传自己
  • 服装鞋帽商城网站建设php企业网站开发框架
  • 网页传奇开服表seo站外优化平台
  • 简述php网站开发流程图长春朝阳网站建设
  • 建站宝盒下载视频网站开发代码
  • 北京网站建设怎么样房屋室内装修设计
  • 国外网站空间购买大望路做网站的公司
  • 沈阳网站页面设计公司诱导视频网站怎么做
  • 滁州做网站的中企动力z云邮企业邮箱登录