当前位置:首页 > 编程笔记 > 正文
已解决

力扣 -- 873. 最长的斐波那契子序列的长度

来自网友在路上 159859提问 提问时间:2023-10-08 10:55:48阅读次数: 59

最佳答案 问答题库598位专家为你答疑解惑

解题步骤:

参考代码:

class Solution {
public:int lenLongestFibSubseq(vector<int>& nums) {int n=nums.size();unordered_map<int,int> hash;for(int i=0;i<n;i++){hash[nums[i]]=i;}int ret=2;vector<vector<int>> dp(n,vector<int>(n,2));//先固定最后一个元素,因为至少三个元素才能组成斐波那契子序列,//所以j可以从2开始for(int j=2;j<n;j++){//固定倒数第二个元素,同上,i从1开始for(int i=1;i<j;i++){int b=nums[i];int c=nums[j];int a=c-b;//这里先判断a是否合法,再判断a在不在哈希表,因为查找效率更慢一下if(a<b&&hash.count(a)){dp[i][j]=dp[hash[a]][i]+1;}ret=max(ret,dp[i][j]);}}return ret<3?0:ret;}
};

你学会了吗???

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"力扣 -- 873. 最长的斐波那契子序列的长度":http://eshow365.cn/6-17239-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!