Leetcode Longest Substring Without Repeating Characters
2015-10-18 15:26
393 查看
创建一个窗口 (双端队列)
class Solution { public: int lengthOfLongestSubstring(string s) { vector <int> hash(256,0); int cnt=0; int answer=0; int i=0,j=0,len=s.size(); while(i<len){ if(hash[s[i]]!=0){ answer=max(answer,i-j); while(hash[s[i]]!=0&&j<i){ hash[s[j]]--; j++; }//end while }//end if hash[s[i]]++; i++; }//end while answer=max(answer,i-j); return answer; } };
改进版
class Solution {
public:
int lengthOfLongestSubstring(string s) {
vector <int> hash(256,-1);
int answer=0;
int i=0,j=0,len=s.size();
if(len<=1) return len;
while(i<len){
if(hash[s[i]]>=j){
answer=max(answer,i-j);
j=hash[s[i]]+1;
}//end if
hash[s[i]]=i;
i++;
}//end while
answer=max(answer,i-j);
return answer;
}
};
在改进 待续
相关文章推荐
- c语言实现hashmap(转载)
- 过滤淘宝网弹出窗口
- 三个不同文件停顿二秒弹出不同窗口的批处理
- Ruby中Hash的11个问题解答
- C#中父窗口和子窗口之间控件互操作实例
- Ruby简明教程之数组和Hash介绍
- jQuery窗口、文档、网页各种高度的精确理解
- C#实现简单的Login窗口实例
- C# Winform窗口之间传值的多种方法浅析
- WPF实现渐变淡入淡出的登陆窗口效果
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- js中hash和ico的关联分析
- JavaScript实现模仿桌面窗口的方法
- Javascript SHA-1:Secure Hash Algorithm
- javascript实现浏览器窗口传递参数的方法
- Jquery仿IGoogle实现可拖动窗口示例代码
- jQuery实现鼠标悬停显示提示信息窗口的方法
- JavaScript实现上下浮动的窗口效果代码
- jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
- 无边框窗口代码详解