Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given an integer n, return the least number of perfect square numbers that sum to n.
A perfect square is an integer that is the square of an integer; in other words, it is the product of some integer with itself. For example, 1, 4, 9, and 16 are perfect squares while 3 and 11 are not.
 
Please complete the following python code precisely:
```python
class Solution:
    def numSquares(self, n: int) -> int:
```