赞
踩
- 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
class Solution { public: int lengthOfLongestSubstring(string s) { int maxLength = 0; if(s.size() <= 1) return s.size(); int flag = 0; int n = s.size(); for(int i = 0; i < n; i++){ char c = s[i]; for(int j = flag; j < i; j++){ if(c == s[j]){ flag = j + 1; break; } } if(i - flag + 1 > maxLength) maxLength = i - flag + 1; } return maxLength; } };
经验:
1、不知道为啥叫滑动窗口,不过挺简单的,这个做法最差时间复杂度是O(n2),但是肯定不会有这么高的复杂度,因为最多只有26个不一样的字母,因此复杂度最高实质上是O(26n)
2、按照官方题解来看,滑动窗口并不是CV中的相关操作和卷积那样,准备一个固定大小的窗口遍历整个数组。而是类似于虫子如东的感觉,左边缩进去一点,右边长出去一点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。