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

商务网站开发实验报告北京纪念册设计制作

商务网站开发实验报告,北京纪念册设计制作,怎么做算命的网站,百度的网站收录怎么做题目链接#xff1a;最长斐波那契数列 题目#xff1a; 输入一个没有重复数字的单调递增的数组#xff0c;数组中至少有 3 个数字#xff0c;请问数组中最长的斐波那契数列的长度是多少#xff1f;例如#xff0c;如果输入的数组是 [1, 2, 3, 4, 5, 6, 7, 8]#xff0…题目链接最长斐波那契数列 题目 输入一个没有重复数字的单调递增的数组数组中至少有 3 个数字请问数组中最长的斐波那契数列的长度是多少例如如果输入的数组是 [1, 2, 3, 4, 5, 6, 7, 8]由于其中最长的斐波那契数列是 1、2、3、5、8因此输出 5。 分析 所谓斐波那契数列是指数列中从第三个数字开始每个数字都等于前面两个数字之和如数列 1、2、3、5、8、13 就是一个斐波那契数列。 可以从左至右每次从输入的数组中取出一个数字使之和前面的若干数字组成斐波那契数列。一个数字可能和前面不同的数字组成不同的斐波那契数列。例如输入数组 [1, 2, 3, 4, 5, 6, 7, 8]假设我们处理到数字 6数字 6 就可以和前面的数字组成两个斐波那契数列分别是 1、5、6 和 2、4、6。也就是说每处理到一个数字时可能面临若干选择需要从这些选择中找出最长的斐波那契数列。解决一个问题需要多个步骤每一步面临若干选择这个题目看起来适合运用回溯法。但由于这个问题没有要求列出所有的斐波那契数列而是找出最长斐波那契数列的长度也就是求最优解因此可以用动态规划来解决这个问题。 分析确定状态转移方程 应用动态规划的关键在于找出状态转移方程。将数组记为 AA[i] 表示数组中下标为 i 的数字。对于每个 j0 j iA[j] 都有可能是在某个斐波那契数列中 A[i] 前面的一个数字。如果存在一个 k0 k j满足 A[k] A[j] A[i]那么这 3 个数字就组成了一个斐波那契数列。这个以 A[i] 为结尾、前一个数字是 A[j] 的斐波那契数列是在以 A[j] 为结尾、前一个数字是 A[k] 的序列的基础上增加一个数字 A[i]因此前者的长度是在后者的长度的基础上加 1。 例如在数组 A [1, 2, 3, 4, 5, 6, 7, 8] 中A[7] 等于 8。数字 8 既可以在 1、2、3、5结尾数字为 A[4]的基础上形成更长的斐波那契数列也可以和数字 6A[5]一起形成斐波那契数列 2、6、8还可以和数字 7A[6]一起组成斐波那契数列 1、7、8。虽然序列 2、6 和 1、7 本身都不是斐波那契数列但在后面添加数字 8 之后就变成斐波那契数列。 由于以 A[i] 为结尾的斐波那契数列的长度依赖于它前面的数字 A[j]不同的 A[j] 能和 A[i] 形成不同的斐波那契数列它们的长度也可能不同。因此状态转移方程有两个参数 i 和 jf(i, j) 表示以 A[i] 为最后一个数字、A[j] 为倒数第 2 个数字的斐波那契数列的长度。如果数组中存在一个数字 k使 A[i] A[j] A[k]0 k j i那么 f(i, j) f(j, k) 1即在以 A[j] 为最后一个数字、A[k] 为倒数第 2 个数字的斐波那契数列的基础上增加一个数字 A[i]形成更长的一个数列。f(i, j) 的值可能是 2此时虽然 A[i] 和 A[j] 这两个数字现在还不能形成一个有效的斐波那契数列但可能会在之后增加一个新的数字使之形成长度为 3 甚至更长的斐波那契数列。 根据状态转移方程写代码 由于状态转移方程有两个参数 i 和 j因此需要一个二维数组来缓存 f(i, j) 的计算结果。i 对应二维数组的行号j 对应二维数组的列号。由于 i 大于 j因此实际上只用到了二维数组的左下角部分。如果数组的长度是 n那么 i 的取值范围为 1 ~ n - 1而 j 的取值范围为 0 ~ n - 2。 下表记录了计算数组 [1, 2, 3, 4, 5, 6, 7, 8] 中最长斐波那契数列的长度的过程。 代码实现 class Solution { public:int lenLongestFibSubseq(vectorint arr) {unordered_mapint, int numToIndex;numToIndex[arr[0]] 0; ​int n arr.size();vectorvectorint dp(n, vectorint(n - 1));int result 0;for (int i 1; i n; i){for (int j 0; j i; j){int target arr[i] - arr[j];if (numToIndex.count(target) numToIndex[target] j){int k numToIndex[target];dp[i][j] dp[j][k] 1;result max(result, dp[i][j]);}else{dp[i][j] 2;}}numToIndex[arr[i]] i;}return result;} };
http://www.hkea.cn/news/14578510/

相关文章:

  • 网站在哪里备案信息企业网络拓扑图及说明
  • 网站备案的时候可以做网站吗万网主机网站建设视频
  • 哪个网站的地图可以做分析图东莞微信小程序开发公司报价
  • 做网站的几个必要步骤wordpress配置数据库
  • 网站建设成本计划安阳信息网
  • 常州北京网站建设凡科网站建设是免费的吗
  • 站内免费推广有哪些重庆软件外包公司
  • 只做硬件网站aso优化方案
  • 网站建设a2345公司网站做百度广告如何报税
  • 南通市网站建设我的完网页制作基础教程第二版课后题
  • 做网站程序怎么写wordpress 主题函数生成
  • 英国做电商网站有哪些个人网站空间申请
  • 网站色彩心理centos7 wordpress网站
  • 做网站图片格式建筑设计集团
  • 江山做网站视觉传达设计培训机构有哪些
  • 广州网站设计公司排名门户网站建设工作会议
  • 大连网站运营制作方案怎么注册网站挣流量
  • yy怎么一直在模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?拼命加载中做直播网站多少钱
  • 广州网站开发定制设计建网站买完域名后怎么做
  • 天津百度整站优化服务动漫制作专业有本科吗
  • 网站定制要花多少钱财经网站建设
  • 做网站 哪些公司安庆网站建设公司简
  • 泰安高新区建设局网站做国外网站衣服码数要怎么写
  • 建立什么网站深圳网站维护
  • 建设商务网站过程功能性的网站归档系统
  • 家装网站建设公司泰安人才网首页
  • win7 做网站服务器优化是什么梗
  • 手机网站推荐几个seo怎么优化步骤
  • 网站一般都是用什么软件做的微信小程序开发工具下载哪个版本
  • 开发一个网站 要多久pc端网站开发