![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
滑动窗口
aaaqqq1234
这个作者很懒,什么都没留下…
展开
-
不含重复字符的最长子串
题目请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串原创 2020-08-05 21:29:23 · 263 阅读 · 0 评论 -
子数组乘积小于K
题目input:[10,5,2,6],100output:8思路暴力解法,注意记录count的方式,可能会漏掉代码def count_min_c(nums,k): count = 0 for i in range(len(nums)): mul = 1 for j in range(len(nums)): mul *= nums[j] if mul>=k: bre原创 2020-08-05 20:27:37 · 85 阅读 · 0 评论 -
实现Strstr
题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1思路滑动窗口,从hay串第一个开始,若和need串相同,则向前进一个,若不同need原创 2020-08-05 19:34:04 · 121 阅读 · 0 评论 -
最短子数组之和
题目input:[2,3,1,2,4,3],7output: 1,2,4思路滑动窗口,当sum大于7 是合法窗口,小于7 是非法窗口,在合法窗口下找到大于等于7的最小值数组。代码def minsubset(nums,k): i = 0 j = 0 sum = 0 res = float('inf') while j<len(nums): if sum<7: sum += nums[j]原创 2020-08-05 18:44:46 · 279 阅读 · 0 评论 -
最长连续递增子序列
题目input:[1,3,5,4,7,8,9]output:[4,7,8,9]思路滑动窗口,设置一个left,和right,如果递增就right加一,出现递减重置left代码def findLengthOfLCIS(n): left = 0 right = 0 maxlist = 0 while right<len(n)-1: if n[right]<n[right+1]: right +=1原创 2020-08-05 18:16:22 · 99 阅读 · 0 评论 -
最大均值子数组
题目input:[ 1, 12, -5, -6, 50, 3 ],4output:12.75思路滑动窗口,先把上次的sum加上下一个j的值,再减去第一个值,构成有效窗口。代码def findMaxnumsverage(n,w): windows_sum = 0 for i in range(w): windows_sum += n[i] res = windows_sum for j in range(w,len(n)): wind原创 2020-08-05 17:35:05 · 89 阅读 · 0 评论 -
同字母异序词
题目给一个s和p返回p在s中同字母异序词的起始位置s: “cbaebabacd” p: “abc”Output:[0, 6]思路滑动窗口代码def areAnagram(str1, str2): if len(str1) != len(str2): return False return sorted(str1) == sorted(str2)def findAnagrams(s,p): length = len(p) list1 = []原创 2020-08-04 23:00:41 · 210 阅读 · 0 评论