📝题目
1 | 假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。 |
📝思路
使用一个哈希表(可使用unordered_map)记录当前窗口包含的small
数组的元素及每个元素在窗口内出现的次数,使用变量cnt
记录窗口内包含的不同元素的个数,当窗口内包含了small
数组中所有的元素时,缩小左边界直至窗口恰好包含所有的元素,最后比较并记录最小窗口的左右边界。
📝题解
1 | vector<int> shortestSeq(vector<int>& big, vector<int>& small) { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.