leetcode#3-Longest Substring Without Repeating Characters-java
来源:互联网 发布:禁止软件开机启动 编辑:程序博客网 时间:2024/06/18 18:29
题目:
Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with the length of 1.Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
解法一:
Tips:使用queue来存储,方便在出现重复元素时,对元素进行删除,并不影响顺序有一个点需要主要,在判断到重复元素时,进行poll操作,记得再把重复元素重新加入。int result = 0;Queue<Character> queue = new LinkedList<>();for(int i=0;i<s.length();i++){ if(queue.contains(s.charAt(i))){ result = Math.max(result,queue.size()); while(queue.size()!=0){ char temp = queue.poll(); if(temp==s.charAt(i)){ queue.add(s.charAt(i)); break; } } }else{ queue.add(s.charAt(i)); }}return Math.max(queue.size(),result);
解法二:
解法二和解法一的思路一致,但由于使用了set,限制了重复元素,不需使用双重for循环
int i = 0, j = 0, max = 0; Set<Character> set = new HashSet<>(); while (j < s.length()) { if (!set.contains(s.charAt(j))) { set.add(s.charAt(j++)); max = Math.max(max, set.size()); } else { set.remove(s.charAt(i++)); } } return max;
解法三:动规思路
由于自己现在还没有对动归有系统的学习
希望过段时间总结之后再来分析,先贴别人的代码
int lengthOfLongestSubstring(string s) { // for ASCII char sequence, use this as a hashmap vector<int> charIndex(256, -1); int longest = 0, m = 0; for (int i = 0; i < s.length(); i++) { m = max(charIndex[s[i]] + 1, m); // automatically takes care of -1 case charIndex[s[i]] = i; longest = max(longest, i - m + 1); } return longest;}
阅读全文
0 0
- [Leetcode] Longest Substring Without Repeating Characters (Java)
- Longest Substring Without Repeating Characters -- Leetcode Java
- [Leetcode]Longest Substring Without Repeating Characters java
- [LeetCode][Java] Longest Substring Without Repeating Characters
- LeetCode java Longest Substring Without Repeating Characters
- LeetCode : Longest Substring Without Repeating Characters [java]
- Java-LeetCode-Longest Substring Without Repeating Characters
- Java Leetcode Longest Substring Without Repeating Characters
- 【LeetCode】 Longest Substring Without Repeating Characters(Java)
- Longest Substring Without Repeating Characters leetcode java
- LeetCode 3 - Longest Substring Without Repeating Characters
- LeetCode 3: Longest Substring Without Repeating Characters
- leetcode-3:Longest Substring Without Repeating Characters
- LeetCode(3) Longest Substring Without Repeating Characters
- leetcode 3LONGEST SUBSTRING WITHOUT REPEATING CHARACTERS
- Leetcode【3】:Longest Substring Without Repeating Characters
- [leetcode 3] Longest Substring Without Repeating Characters
- [Leetcode] 3 - Longest Substring Without Repeating Characters
- libcurl获取网页内容的PHP代码
- poj1595 素数打表
- 集合
- 算法和数据结构
- Unable to load class for JSP或者有class not found 等
- leetcode#3-Longest Substring Without Repeating Characters-java
- Spring 定时任务(精)(session工具类(配置失效时间),cookie工具类 web工程(初始化容器) redis工具类)
- 日记(周中)
- Scale-Aware Face Detection
- codeforces 183d(期望概率dp)
- 构造器和this static静态
- 1024 大数运算,回文数
- 【bzoj1589】[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
- php解析url