LeetCode_003 Longest Substring Without Repeating Characters(greedy)
来源:互联网 发布:淘宝店描述怎么写范例 编辑:程序博客网 时间:2024/05/17 01:32
题意:找到不含重复字符的最长子串。
思路:最开始的思路是枚举起点和终点,但是很快否决了,因为O(N^2)的时间复杂度太高了。。之后想用二分,但是仔细想了一下发现二分对于这种要求 连续的题目其实并不是特别适合。后来想到贪心,但是开始的时候贪心的思路错了。起点的思路是对的,一定是由于某个字符出现重复来重置起点;但是 终点不在第二次出现该字母的地方,而是继续往后,直到该字母出现第三次或者到了字符串结尾。也就是说我们记录字符的出现位置(ASCII,数组小于200), 当某个字母第二次出现时我们抛掉第一次出现,从第一次后计算包含第二次在内的最长子串。O(N)的时间复杂度。
第一次写的代码到第二次出现停止了,对于样例:asjrgapa输出错误结果!
后来参考了别人的代码AC,但是觉得很亏,本来自己可以的,差一点。
代码实现:
#include <cstring>#include <cmath>using std::string;using std::max;class Solution {public: int lengthOfLongestSubstring(string s) { int len = s.size(); int sta = -1; int pos[200]; int res = 0; memset(pos,-1,sizeof(pos)); for( int i = 0; i < len; i++ ){ int tmp = (int)s[i]; if( pos[tmp] > sta ){ sta = pos[tmp]; } pos[tmp] = i; res = max(res,i-sta); } return res; }};
0 0
- LeetCode_003 Longest Substring Without Repeating Characters(greedy)
- 2017-09-07 LeetCode_003 Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters
- UX入門 - 1
- 大话设计模式学习之工厂模式(一)
- ThinkPHP--SQL 查询方式
- autorelease基本使用
- Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析
- LeetCode_003 Longest Substring Without Repeating Characters(greedy)
- Gitlab - 如何解決 "No authentication methods configured on login page" ? (gitlab version : 8.11.2)
- springMVC的配置
- caffe环境配置
- mybatis详解(一)
- preg_match、preg_match_all使用注意点
- iOS开发之 WKWebVeiw使用
- Python Debug
- 欧拉计划 8