comefrom: <awangdev>Number of Longest Increasing Subsequence_2.java
code: 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;
      }
masked: 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 ;
  }
  