【打卡】牛客网:BM92 最长无重复子数组

题目:

BM71 最长上升子序列(一)

BM73 最长回文子串

BM77 最长的括号子串

BM92 最长无重复子数组

最长系列问题,基本用动态规划。BM92,用滑动窗口。

模板的:

  1. 窗口扩大(右指针往右走)
  2. 若出现重复元素,窗口缩小(左指针往右走),直到重复元素退出。
  3. 综上,以保证窗口无重复元素、且最长。
#include 
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector& arr) {
        // write code here
        int n = arr.size();
        int l = 0;
        int r = 0;
        int ans = 0;
        unordered_map hash;

        for(; r 1){
                hash[arr[l]]--;
                l++;
            }

            ans = max(ans,r-l+1);
        }
        return ans;
    }
};

你可能感兴趣的:(数据结构)