class Solution {
public:
int maxSelectedElements(vector<int>& nums) {
sort(nums.begin(), nums.end());
unordered_map<int, int> f;
for (int x : nums) {
f[x + 1] = f[x] + 1;
f[x] = f[x - 1] + 1;
}
int ans = 0;
for (auto& [_, res] : f) {
ans = max(ans, res);
}
return ans;
}
};