comefrom: <awangdev>House Robber II_2.java
code: public int rob(int[] nums) {
          if (nums == null || nums.length == 0) {
              return 0;
          } else if (nums.length == 1) {
              return nums[0];
          }
          int n = nums.length;
          long[][] dp = new long[2][2];
          dp[0][0] = 0; 
          dp[1][0] = 0; 
          dp[1][1] = nums[0]; 
          
          for (int i = 2; i < n; i++) { 
              dp[i % 2][0] = Math.max(dp[(i - 1) % 2][0], dp[(i - 2) % 2][0] + nums[i - 1]);
              dp[i % 2][1] = Math.max(dp[(i - 1) % 2][1], dp[(i - 2) % 2][1] + nums[i - 1]);
          }
          dp[n % 2][0] = Math.max(dp[(n - 1) % 2][0], dp[(n - 2) % 2][0] + nums[n - 1]);
          dp[n % 2][1] = dp[(n - 1) % 2][1];
          
          return (int) Math.max(dp[n % 2][0], dp[n % 2][1]);
      }
masked: public int sample_funcname ( int [ ] var_0 ) {
    if ( var_0 == null || var_0 . length == 0 ) {
      return 0 ;
    }
    else if ( var_0 . length == 1 ) {
      return var_0 [ 0 ] ;
    }
    int var_1 = var_0 . length ;
    long [ ] [ ] var_2 = new long [ 2 ] [ 2 ] ;
    var_2 [ 0 ] [ 0 ] = 0 ;
    var_2 [ 1 ] [ 0 ] = 0 ;
    var_2 [ 1 ] [ 1 ] = var_0 [ 0 ] ;
    for ( int var_3 = 2 ;
    var_3 < var_1 ;
    var_3 ++ ) {
      var_2 [ var_3 % 2 ] [ 0 ] = Math . max ( var_2 [ ( var_3 - 1 ) % 2 ] [ 0 ] , var_2 [ ( var_3 - 2 ) % 2 ] [ 0 ] + var_0 [ var_3 - 1 ] ) ;
      var_2 [ var_3 % 2 ] [ 1 ] = Math . max ( var_2 [ ( var_3 - 1 ) % 2 ] [ 1 ] , var_2 [ ( var_3 - 2 ) % 2 ] [ 1 ] + var_0 [ var_3 - 1 ] ) ;
    }
    var_2 [ var_1 % 2 ] [ 0 ] = Math . max ( var_2 [ ( var_1 - 1 ) % 2 ] [ 0 ] , var_2 [ ( var_1 - 2 ) % 2 ] [ 0 ] + var_0 [ var_1 - 1 ] ) ;
    var_2 [ var_1 % 2 ] [ 1 ] = var_2 [ ( var_1 - 1 ) % 2 ] [ 1 ] ;
    return ( int ) Math . max ( var_2 [ var_1 % 2 ] [ 0 ] , var_2 [ var_1 % 2 ] [ 1 ] ) ;
  }
  