comefrom: <gouthampradhan>dynamic_programming_LengthofLongestFibonacciSubsequence_1.java
code: public int lenLongestFibSubseq(int[] A) {
      if (A.length < 3) return 0;
      Map<Integer, Map<Integer, Integer>> indexMap = new HashMap<>();
      int max = 0;
      for (int i = A.length - 1; i >= 0; i--) {
        Map<Integer, Integer> subHashMap = new HashMap<>();
        for (int j = 0; j < i; j++) {
          int sum = A[i] + A[j];
          if (indexMap.containsKey(sum)) {
            if (indexMap.get(sum).containsKey(A[i])) {
              int value = 1 + indexMap.get(sum).get(A[i]);
              subHashMap.put(A[j], value);
              max = Math.max(max, value);
            } else {
              subHashMap.put(A[j], 1);
              max = Math.max(max, 1);
            }
          }
        }
        indexMap.put(A[i], subHashMap);
      }
      return max == 0 ? 0 : max + 2;
    }
masked: public int sample_funcname ( int [ ] var_0 ) {
    if ( var_0 . length < 3 ) return 0 ;
    Map < Integer , Map < Integer , Integer >> var_1 = new HashMap < > ( ) ;
    int max = 0 ;
    for ( int var_2 = var_0 . length - 1 ;
    var_2 >= 0 ;
    var_2 -- ) {
      Map < Integer , Integer > var_3 = new HashMap < > ( ) ;
      for ( int var_4 = 0 ;
      var_4 < var_2 ;
      var_4 ++ ) {
        int var_5 = var_0 [ var_2 ] + var_0 [ var_4 ] ;
        if ( var_1 . containsKey ( var_5 ) ) {
          if ( var_1 . get ( var_5 ) . containsKey ( var_0 [ var_2 ] ) ) {
            int var_6 = 1 + var_1 . get ( var_5 ) . get ( var_0 [ var_2 ] ) ;
            var_3 . put ( var_0 [ var_4 ] , var_6 ) ;
            max = Math . max ( max , var_6 ) ;
          }
          else {
            var_3 . put ( var_0 [ var_4 ] , 1 ) ;
            max = Math . max ( max , 1 ) ;
          }
        }
      }
      var_1 . put ( var_0 [ var_2 ] , var_3 ) ;
    }
    return max == 0 ? 0 : max + 2 ;
  }
  