comefrom: <awangdev>78. Subsets_3.java
code: public List<List<Integer>> subsets(int[] nums) {
          List<List<Integer>> result = new ArrayList<>();
          if (nums == null || nums.length == 0) {
              return result;
          }
          int n = nums.length;
          long maxRange = (long) Math.pow(2, n) - 1;
  
          for (int i = 0; i <= maxRange; i++) {
              List<Integer> list = new ArrayList<>();
              int index = 0;
              int num = i;
              while (num != 0) {
                  if ((num & 1) == 1) {
                      list.add(nums[index]);
                  }
                  num = num >> 1;
                  index++;
              }
              result.add(list);
          }
          return result;
      }
masked: public List < List < Integer >> var_0 ( int [ ] var_1 ) {
    List < List < Integer >> var_2 = new ArrayList < > ( ) ;
    if ( var_1 == null || var_1 . length == 0 ) {
      return var_2 ;
    }
    int var_3 = var_1 . length ;
    long var_4 = ( long ) Math . pow ( 2 , var_3 ) - 1 ;
    for ( int var_5 = 0 ;
    var_5 <= var_4 ;
    var_5 ++ ) {
      List < Integer > var_6 = new ArrayList < > ( ) ;
      int var_7 = 0 ;
      int var_8 = var_5 ;
      while ( var_8 != 0 ) {
        if ( ( var_8 & 1 ) == 1 ) {
          var_6 . add ( var_1 [ var_7 ] ) ;
        }
        var_8 = var_8 >> 1 ;
        var_7 ++ ;
      }
      var_2 . add ( var_6 ) ;
    }
    return var_2 ;
  }
  