https://leetcode-cn.com/problems/degree-of-an-array/ 这个题跟昨天做的子串很相似哈,哈希表+滑动窗口完成。 class Solution { public int findShortestSubArray(int[] nums) { HashMap ...
分类:
编程语言 时间:
2020-05-24 11:37:40
阅读次数:
45
239. 滑动窗口最大值 难度困难 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 https://leetcode-cn.com/problems/sliding- ...
分类:
其他好文 时间:
2020-05-22 00:00:30
阅读次数:
70
题目链接 https://leetcode-cn.com/problems/shortest-supersequence-lcci/ 题目描述 假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。 返回最短子数组的左端点和右端点,如有多 ...
分类:
其他好文 时间:
2020-05-20 12:08:15
阅读次数:
106
最大不重复子串是经典的 滑动窗口 问题 思路: mp记录每个字符出现的最大索引位置 start记录当前不重复子串的起始索引位置 先用Python实现一遍 完全相同的思路再用Go实现一遍 leetcode结果如下 (Python总是被碾压, 哭) ...
分类:
编程语言 时间:
2020-05-19 18:11:15
阅读次数:
53
滑动窗口法 思路: 由于给定words列表中每个单词长度是一样的,则我们可以通过单词个数乘以长度得到要比对子串的长度,然后在原始字符串不断滑动比对。找到每个子串后,可以将子串按照单词长度拆分变成数组,只需要比对拆分后的数组中元素是否和words中一致即可。 代码: class Solution: d ...
分类:
其他好文 时间:
2020-05-12 13:33:25
阅读次数:
55
滑动窗口法 思路: 将要匹配的子串逐一和模式串比较。 ababcab abca 代码(利用Python自带字符串比对): class Solution: def strStr(self, haystack: str, needle: str) -> int: L, n = len(needle), ...
分类:
其他好文 时间:
2020-05-10 23:27:16
阅读次数:
89
题目: 解答: 思路:滑动窗口。 我们可以使用哈希表记录每个字符的下一个索引,然后尽量向右移动尾指针来拓展窗口,并更新窗口的最大长度。如果尾指针指向的元素重复,则将头指针直接移动到窗口中重复元素的右侧。 1 class Solution { 2 public: 3 int lengthOfLonge ...
分类:
其他好文 时间:
2020-05-09 23:15:47
阅读次数:
56
题目: 解答: 1 class Solution { 2 public: 3 vector<vector<int>> findContinuousSequence(int target) 4 { 5 int i = 1; // 滑动窗口的左边界 6 int j = 1; // 滑动窗口的右边界 7 ...
分类:
其他好文 时间:
2020-05-09 21:30:07
阅读次数:
59
题目: 解答: 1 class Solution { 2 public: 3 vector<int> maxSlidingWindow(vector<int>& nums, int k) 4 { 5 if(nums.size() == 0 || k == 1) 6 { 7 return nums; ...
分类:
其他好文 时间:
2020-05-09 20:38:37
阅读次数:
62
应用及优点: 1.可用于解决数组或者字符串的子元素问题。 2.用单循环代替了嵌套循环问题,时间复杂度低。 3.用双指针维护动态窗口。 相关算法题: Longest Substring Without Repeating Characters无重复最长子串 Find All Anagrams in a ...