输入:
[2, 3, 4, 5]
返回值:
4
int maxLength(vector<int>& arr) {
// write code here
int n = arr.size();
int l = 0, r = 0; //滑动窗口的 左边界 和 右边界
set<int>s; //set 是一种排好序的数组,存进去的元素可以自动排序,且每个元素出现有且仅有一次.
int res = 0;
while (r < n) {
if (!s.count(arr[r])) { //s.count(),计数!!!! 前面直接取 “!”作为判断条件
s.insert(arr[r]); //s.insert(),插入!!!!右侧的
r++;
}
else {
s.erase(arr[l]); //s.erase(),释放!!!!!左侧的
l++;
}
res = res > s.size() ? res : s.size(); //必须比较res和s.size()的大小,否则提交报错
}
return res;
}
最长无重复数组
最新推荐文章于 2024-03-30 15:22:46 发布