LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
2015-08-27 11:37
316 查看
https://leetcode.com/problems/longest-substring-without-repeating-characters/
思路:从某点结束所能取到的最早开头是到目前出现倒数第二次的字符的最末位置后一位
如图:(S代表起点,T代表终点)
abcabcab
**S*T
假设现在在4位,向前找,a出现的倒数第二次在0位,b出现的在1位,所以可以从2位开始取
思路:从某点结束所能取到的最早开头是到目前出现倒数第二次的字符的最末位置后一位
如图:(S代表起点,T代表终点)
abcabcab
**S*T
假设现在在4位,向前找,a出现的倒数第二次在0位,b出现的在1位,所以可以从2位开始取
class Solution { public: int lengthOfLongestSubstring(string s) { int ans = 0; typedef pair<int,int> P; priority_queue<P> que; int vis[256];memset(vis,-1,sizeof vis); int used[256];memset(used,-1,sizeof used); for(int i = 0;i < s.length();i++){ used[s[i]] = vis[s[i]]; vis[s[i]] = i; que.push(P(used[s[i]],s[i])); while(!que.empty() && used[que.top().second]!= que.top().first)que.pop(); if(!que.empty())ans = max(ans,i - que.top().first); else {ans = max(ans,i + 1);} } return ans; } };
相关文章推荐
- 一种轻量的openresty路由设计
- 花90%的时间考虑失败
- HTML2
- 《Java并发编程的艺术》读书笔记(一)
- UI21_基类(封装网络请求)
- IPSec方案部署
- 面向对象
- 在Oracle Database 11gR2中已经废弃了 Listener Password
- opencart安装和使用PHPMailer
- 二次元的资本地图:17亿的B站并不贵
- Eclipse更改字体大小
- iOS开发网络篇—数据缓存
- hdoj 2112 HDU Today
- 使用StAX解析XML
- java死锁例子详解
- strong,weak, retain, assign的区别
- ListFragment和ListActivity的setOnItemClickListener不起作用
- 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'
- ajax上传图片
- 个人环境搭建——版本控制SVN