哈希表
滑动窗口
class Solution {
public:
/**
*
* @param arr int整型vector the array
* @return int整型
*/
int maxLength(vector<int>& arr) {
// write code here
unordered_map<int, int> mp;
int n = arr.size(), maxlen = 0, indx = 0;
for (int i = 0; i < n; ++i) {
if (mp.find(arr[i]) != mp.end()) { // 存在重复
indx = max(indx, mp[arr[i]] + 1); // 获取不重复的最小下标
}
mp[arr[i]] = i; // 更新当前值对应的下标
maxlen = max(maxlen, i - indx + 1); // 最长无重复子数组长度
}
return maxlen;
}
};


京公网安备 11010502036488号