题解 | #最长无重复子数组#
最长无重复子数组
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
哈希表
滑动窗口
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; } };