classSolution{publicintlenLongestFibSubseq(int[] arr){int result =2;int[][] dp =newint[arr.length][arr.length];Map<Integer,Integer> map =newHashMap<>();for(int i =0; i < arr.length; i++){
map.put(arr[i], i);}for(int i =1; i < arr.length; i++){for(int j =0; j < i; j++){int index = map.getOrDefault(arr[i]- arr[j],-1);
dp[i][j]= index >=0&& index < j ? dp[j][index]+1:2;
result =Math.max(result, dp[i][j]);}}return result ==2?0: result;}}