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

Given an array of integers arr, a lucky integer is an integer that has a frequency in the array equal to its value.
Return the largest lucky integer in the array. If there is no lucky integer return -1.
 
Please complete the following python code precisely:
```python
class Solution:
    def findLucky(self, arr: List[int]) -> int:
```