Given an integer array arr, count how many elements x there are, such that x + 1 is also in arr. If there are duplicates in arr, count them separately.
Example 1:
Input: arr = [1,2,3]
Output: 2Explanation: 1 and 2 are counted cause 2 and 3 are in arr.
Example 2:
Input: arr = [1,1,3,3,5,5,7,7]
Output: 0Explanation: No numbers are counted, cause there is no 2, 4, 6, or 8 in arr.
Constraints:
1 <= arr.length <= 10000 <= arr[i] <= 1000class Solution:
def countElements(self, arr: List[int]) -> int:
count = 0
for x in arr:
if x + 1 in arr:
count += 1
return countWhere is the length of the input array
arr.
class Solution:
def countElements(self, arr: List[int]) -> int:
hash_set = set(arr)
count = 0
for x in arr:
if x + 1 in hash_set:
count += 1
return countWhere is the length of the input array
arr.
class Solution:
def countElements(self, arr: List[int]) -> int:
arr.sort()
count = 0
run_length = 1
for i in range(1, len(arr)):
if arr[i - 1] != arr[i]:
if arr[i - 1] + 1 == arr[i]:
count += run_length
run_length = 0
run_length += 1
return countWhere is the length of the input array
arr.