comefrom: <awangdev>House Robber II_5.java
code: public int rob(int[] nums) {
          if (nums == null || nums.length == 0) {
          	return 0;
          } else if (nums.length == 1) {
          	return nums[0];
          } else if (nums.length == 2) {
              return Math.max(nums[0], nums[1]);
          }
  
          int n = nums.length;
  
          int[] dp1 = new int[n];
          dp1[0] = nums[0];
          dp1[1] = Math.max(nums[0], nums[1]);
          for (int i = 2; i < n - 1; i++) {
          	dp1[i] = Math.max(dp1[i - 1], dp1[i - 2] + nums[i]);
          }
          dp1[n - 1] = dp1[n - 2];
  
          int[] dp2 = new int[n];
          dp2[0] = 0;
          dp2[1] = nums[1];
          for (int i = 2; i < n - 2; i++) {
          	dp2[i] = Math.max(dp2[i - 1], dp2[i - 2] + nums[i]);
          }
          dp2[n - 1] = dp2[n - 3] + nums[n - 1];
  
          return Math.max(dp2[n - 1], dp1[n - 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 ] ;
    }
    else if ( var_0 . length == 2 ) {
      return Math . max ( var_0 [ 0 ] , var_0 [ 1 ] ) ;
    }
    int var_1 = var_0 . length ;
    int [ ] var_2 = new int [ var_1 ] ;
    var_2 [ 0 ] = var_0 [ 0 ] ;
    var_2 [ 1 ] = Math . max ( var_0 [ 0 ] , var_0 [ 1 ] ) ;
    for ( int var_3 = 2 ;
    var_3 < var_1 - 1 ;
    var_3 ++ ) {
      var_2 [ var_3 ] = Math . max ( var_2 [ var_3 - 1 ] , var_2 [ var_3 - 2 ] + var_0 [ var_3 ] ) ;
    }
    var_2 [ var_1 - 1 ] = var_2 [ var_1 - 2 ] ;
    int [ ] var_4 = new int [ var_1 ] ;
    var_4 [ 0 ] = 0 ;
    var_4 [ 1 ] = var_0 [ 1 ] ;
    for ( int var_3 = 2 ;
    var_3 < var_1 - 2 ;
    var_3 ++ ) {
      var_4 [ var_3 ] = Math . max ( var_4 [ var_3 - 1 ] , var_4 [ var_3 - 2 ] + var_0 [ var_3 ] ) ;
    }
    var_4 [ var_1 - 1 ] = var_4 [ var_1 - 3 ] + var_0 [ var_1 - 1 ] ;
    return Math . max ( var_4 [ var_1 - 1 ] , var_2 [ var_1 - 1 ] ) ;
  }
  