<awangdev>Number of Longest Increasing Subsequence_2.java
public int findNumberOfLIS(int[] nums) {
        if (nums == null || nums.length == 0) return 0;
        
        int n = nums.length, maxLen = 0, maxFreq = 0;
        int[] len = new int[n + 1]; 
        int[] count = new int[n + 1];
        
        for (int i = 1; i <= n; i++) {
            len[i] = 1;
            count[i] = 1;
            for (int j = 1; j < i; j++) {
                if (nums[j - 1] < nums[i - 1]) {
                    if (len[i] == len[j] + 1) {
                        count[i] += count[j];
                    } else if (len[i] < len[j] + 1) {
                        len[i] = len[j] + 1;
                        count[i] = count[j];
                    }
                }
            }
            if (maxLen == len[i]) {
                maxFreq += count[i];
            } else if (maxLen < len[i]) {
                maxLen = len[i];
                maxFreq = count[i];
            }
        }
        
        return maxFreq;
    }
public int sample_funcname ( int [ ] var_0 ) {
  if ( var_0 == null || var_0 . length == 0 ) return 0 ;
  int var_4 = var_0 . length , var_5 = 0 , var_6 = 0 ;
  int [ ] var_8 = new int [ var_4 + 1 ] ;
  int [ ] var_9 = new int [ var_4 + 1 ] ;
  for ( int var_10 = 1 ;
  var_10 <= var_4 ;
  var_10 ++ ) {
    var_8 [ var_10 ] = 1 ;
    var_9 [ var_10 ] = 1 ;
    for ( int var_11 = 1 ;
    var_11 < var_10 ;
    var_11 ++ ) {
      if ( var_0 [ var_11 - 1 ] < var_0 [ var_10 - 1 ] ) {
        if ( var_8 [ var_10 ] == var_8 [ var_11 ] + 1 ) {
          var_9 [ var_10 ] += var_9 [ var_11 ] ;
        }
        else if ( var_8 [ var_10 ] < var_8 [ var_11 ] + 1 ) {
          var_8 [ var_10 ] = var_8 [ var_11 ] + 1 ;
          var_9 [ var_10 ] = var_9 [ var_11 ] ;
        }
      }
    }
    if ( var_5 == var_8 [ var_10 ] ) {
      var_6 += var_9 [ var_10 ] ;
    }
    else if ( var_5 < var_8 [ var_10 ] ) {
      var_5 = var_8 [ var_10 ] ;
      var_6 = var_9 [ var_10 ] ;
    }
  }
  return var_6 ;
}
