动态规划子序列标题系列一>最长斐波那契子序列的长度

[复制链接]
发表于 2025-11-27 15:14:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
标题: 


剖析: 


代码: 
  1. public int lenLongestFibSubseq(int[] arr) {
  2.         int n = arr.length;
  3.         int ret = 2;
  4.         Map<Integer,Integer> hash = new HashMap<>();
  5.         int[][] dp = new int[n][n];
  6.         //把元素和下标绑定起来,便于找下标K
  7.         for(int i = 0; i < n; i++)
  8.             hash.put(arr[i],i);
  9.         for(int i = 0; i < n; i++)
  10.             for(int j = 0; j < n; j++)
  11.                 dp[i][j] = 2;
  12.         for(int j = 2; j < n; j++){//固定第二个数
  13.             for(int i = 1; i < j; i++){//固定倒数第二个数
  14.                 int a = arr[j]-arr[i];
  15.                 int b = arr[i];
  16.                 if(a < b && hash.containsKey(a)) dp[i][j] = dp[hash.get(a)][i]+1;
  17.                 ret = Math.max(ret, dp[i][j]);
  18.             }
  19.         }   
  20.         return ret < 3 ? 0 : ret;
  21.     }
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表