Given an integer array arr
, count element x
such that x + 1
is also in arr
.
If there’re duplicates in arr
, count them seperately.
Example 1:
Input: arr = [1,2,3] Output: 2 Explanation: 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: 0 Explanation: No numbers are counted, cause there's no 2, 4, 6, or 8 in arr.
Example 3:
Input: arr = [1,3,2,3,5,0] Output: 3 Explanation: 0, 1 and 2 are counted cause 1, 2 and 3 are in arr.
Example 4:
Input: arr = [1,1,2,2] Output: 2 Explanation: Two 1s are counted cause 2 is in arr.
Constraints:
1 <= arr.length <= 1000
0 <= arr[i] <= 1000
给定一个数组,如果数组中某个元素x和x+1都存在,则计数加一,问数组中共有多少个这样的x。
简单题,直接用set记录下有哪些数,再遍历看看x+1是否存在即可。代码如下:
class Solution {
public:
int countElements(vector<int>& arr) {
set<int> unique_nums;
for (int i = 0; i < arr.size(); ++i) {
unique_nums.insert(arr[i]);
}
int ans = 0;
for (int i = 0; i < arr.size(); ++i) {
if (unique_nums.find(arr[i] + 1) != unique_nums.end())++ans;
}
return ans;
}
};
本代码提交AC,用时8MS。