input: Write a python function to solve the N-Queens problem and return all possible solutions.
  assert solveNQueens(4) == [[[2], [4], [1], [3]], [[3], [1], [4], [2]]]
  assert solveNQueens(1) == [[[1]]]
  assert solveNQueens(2) == []
  assert solveNQueens(3) == []
output: def solveNQueens(n):
      def is_safe(board, row, col):
          for i in range(row):
              if board[i] == col or \
                 board[i] - i == col - row or \
                 board[i] + i == col + row:
                  return False
          return True
  
      def solve(board, row):
          if row == n:
              solutions.append([x+1 for x in board])
              return
          for col in range(n):
              if is_safe(board, row, col):
                  board[row] = col
                  solve(board, row + 1)
                  board[row] = -1
  
      solutions = []
      solve([-1] * n, 0)
      return [list(map(lambda x: [x], solution)) for solution in solutions]