code: private static int[][] deepClone(int[][] array) {
          int[][] result = new int[array.length][];
          for (int i = 0; i < result.length; i++) {
              result[i] = array[i].clone();
          }
          return result;
      }
docs: Creates and returns a deep copy of the given array. Unlike {@code #clone} that performs a
  shallow copy, this method copies both array levels.
  
  @param array the array to clone
  @return a deep copy of the given array
  
  @see Object#clone()