题解 | #最长无重复子数组#

最长无重复子数组

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
        int n=arr.size();
        vector<int> vec; // 元素;索引
        int ans=0;
        for(int i=0; i<n; i++){
            vector<int>::const_iterator it = find(vec.begin(),vec.end(),arr[i]);  
            if( it == vec.end()){
                vec.push_back(arr[i]);
            }else{ // 找到元素; 从找到元素的下一个位置开始出发
                vector<int>::const_iterator end = vec.end();
                vec.assign( it+1, end); 
                vec.push_back(arr[i]);
            }
            int t = vec.size();
            ans = max(ans,t);
        } 
        return ans;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务