leetcode 003 —— Longest Substring Without Repeating Characters
来源:互联网 发布:淘宝直邮有假货吗 编辑:程序博客网 时间:2024/04/30 07:06
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
方法:贪心算法
假设子串里含有重复字符,则父串一定含有重复字符,单个子问题就可以决定父问题,因此可以用贪心法。跟动规不同,动规里,单个子问题只能影响父问题,不足以决定父问题。从左往右扫描,当遇到重复字母时,以上一个重复字母的index+1,作为新的搜索起始位置,直到最后一个字母,复杂度是O(n)。
class Solution {public: int lengthOfLongestSubstring(string s) { const int letter_kinds=256; //覆盖所有字母的ASCII值 int last[letter_kinds]; fill(last,last+letter_kinds-1,-1); //last数组全部赋值 -1 fill函数的作用是:将一个区间的元素都赋予val值。头文件 algorithm int start_pos=-1; int max_len=0; for(int i=0;i<s.size();i++){ if(last[s[i]]>start_pos){ //如果s[i]上次出现的位置,大于起始位置,即表示这个字母,在子串已经出现过了。 start_pos=last[s[i]]; } max_len=max(i-start_pos,max_len); //包含头文件 cmath last[s[i]]=i; //给所有出现过的字母赋值为当前位置 } return max_len; }};
0 0
- leetcode 003 —— Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode-003 Longest Substring Without Repeating Characters
- 【leetcode】003 Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode 003-Longest Substring Without Repeating Characters
- [LeetCode]-003-Longest Substring Without Repeating Characters
- LeetCode #003 Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- 003 Longest Substring Without Repeating Characters [Leetcode]
- [LeetCode]003-Longest Substring Without Repeating Characters
- LeetCode 003 Longest Substring Without Repeating Characters
- LeetCode 003: Longest Substring Without Repeating Characters
- leetcode-003 Longest Substring Without Repeating Characters
- LeetCode-003 Longest Substring Without Repeating Characters
- leetcode 003 Longest Substring Without Repeating Characters
- LeetCode —— Longest Substring Without Repeating Characters
- LeetCode——Longest Substring Without Repeating Characters
- 【ThinkingInJava】7、实现组合语法
- android 动作栏(Action Bar)
- PDAF
- 设计模式理论
- 青蛙跳台阶
- leetcode 003 —— Longest Substring Without Repeating Characters
- mysql重置密码方法
- Linux系统下通过Socket文件描述符寻找连接状态
- 需求分析常用的UML图
- socket阻塞与非阻塞,同步与异步、I/O模型
- 移位操作
- Ubuntu 10.04 安装在 VMware Workstation 7 后,键盘无法输入的问题的解决方法
- 【ThinkingInJava】8、对象的初始化为null,基本类型默认初始化为0
- xib 自定义视图