1/**2* @param {number[]} nums3* @return {number}4*/5var specialArray = function (nums) {6// step 1: sort7nums = nums.sort((a, b) => a - b);8// step 2: search9for (let i = nums.length; i >= 0; i--) {10// found:11if (bs(nums, i)) return i;12}13// not found:14return -1;15};1617function bs(array, target) {18let left = 0;19let right = array.length - 1;2021while (left <= right) {22const mid = Math.floor((left + right) / 2);23if (array[mid] < target) left = mid + 1;24else right = mid - 1;25}2627const greaterThanTarget = array.length - left;2829return greaterThanTarget === target;30}