C++:哈希+双指针

找到字符串的最长无重复字符子串

http://www.nowcoder.com/questionTerminal/b56799ebfd684fb394bd315e89324fb4

#include<unordered_map>
class Solution {
public:
    int maxLength(vector<int>& arr) {
        unordered_map<int , int> mymap;
        int i = 0 , Max = INT_MIN;
        while(i<arr.size())
        {
            mymap.clear();
            mymap[arr[i]] = i;
            int j = i+1;
            while(j<arr.size())
            {
                if(mymap.count(arr[j])==0)//返回匹配特定键的元素数量
                {
                    mymap[arr[j]] = j;
                }
                else
                {
                    i = mymap.at(arr[j]);//访问指定键值的元素
                    break;
                }
                j++;
            }
            i++;
            int temp = mymap.size();
            Max = max(Max , temp);
        }
        return Max;
    }
};

全部评论
不加头文件,是不是用不了unordered_map?
点赞
送花
回复
分享
发布于 2021-03-26 19:43
class Solution { public: /** * * @param arr int整型vector the array * @return int整型 */ int maxLength(vector<int>& arr) { // write code here // 数组的值——数组的index unordered_map<int> value_index; int maxSize = 0; int curSize = 0; for (int i = 0; i < arr.size(); i++) { if (value_index.count(arr[i]) == 0) { value_index[arr[i]] = i; curSize++; } else if (value_index.count(arr[i]) > 0){ // 记录上一次出现重复的值的 index i = value_index[arr[i]]; value_index.clear(); curSize = 0; } if (maxSize < curSize) { maxSize = curSize; } } return maxSize; } };</int></int>
点赞
送花
回复
分享
发布于 2021-07-13 22:17
秋招专场
校招火热招聘中
官网直投

相关推荐

9 1 评论
分享
牛客网
牛客企业服务