本文主要是介绍最长的斐波那契子序列的长度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、暴力法
枚举所有可能的情况,计算每一种斐波那契数列的长度,取最大值。
// 暴力法(不好实施)public int lenLongestFibSubseq(int[] A){int a, b, aa;int longest = 0;int len = 2; // 当前斐波那契子序列的长度for (int i=0; i<A.length; i++){a = A[i];for (int j=i+1; j<A.length; j++){b = A[j];len = 2;for (int k=j+1; k<A.length; k++){if (a + b > A[A.length-1])break;// 满足约束条件if (a + b == A[k]){a = b;b = A[k];len++;}}a = A[i]; // 这里很关键,必须恢复alongest = Math.max(longest, len);}}return longest < 3? 0: longest;}
这篇关于最长的斐波那契子序列的长度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!