<p>Given an array of integers <code>arr</code>, a <strong>lucky integer</strong> is an integer that has a frequency in the array equal to its value.</p> <p>Return <em>the largest <strong>lucky integer</strong> in the array</em>. If there is no <strong>lucky integer</strong> return <code>-1</code>.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> arr = [2,2,3,4] <strong>Output:</strong> 2 <strong>Explanation:</strong> The only lucky number in the array is 2 because frequency[2] == 2. </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> arr = [1,2,2,3,3,3] <strong>Output:</strong> 3 <strong>Explanation:</strong> 1, 2 and 3 are all lucky numbers, return the largest of them. </pre> <p><strong>Example 3:</strong></p> <pre> <strong>Input:</strong> arr = [2,2,2,3,3] <strong>Output:</strong> -1 <strong>Explanation:</strong> There are no lucky numbers in the array. </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= arr.length <= 500</code></li> <li><code>1 <= arr[i] <= 500</code></li> </ul>