码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode ---Longest Substring Without Repeating Characters

时间:2017-05-14 13:40:20      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:子串   turn   ret   char   with   没有   last   元素   color   

 1 public int lengthOfLongestSubstring(String s) {
 2     char[] chars = s.toCharArray();
3 //存储已遍历的元素中相应char值最后出现的位置 4 HashMap<Character, Integer> map = new HashMap<Character, Integer>();
5 //当遍历到i位置时,lastNoRepeatIndex到i是已遍历元素中没有重复元素出现的部分 6 //如:abcdeefghij,当遍历到g元素,lastNoRepeatIndex=5;即第二个e的位置 7 int lastNoRepeatIndex = 0;
8 //最长子串的前后位置下标 9 int[] longestIndex = {0, 0};
10 //最长子串长度 11 int longestLength = 0; 12 13 int len = 0; 14 15 for(int i = 0; i < chars.length; i ++) { 16 //abcdeefghiijk,遍历到i=10时,将lastNoRepeatIndex从5更新到10 17 if(map.containsKey(chars[i]) && map.get(chars[i]) + 1 > lastNoRepeatIndex) { 18 lastNoRepeatIndex = map.get(chars[i]) + 1; 19 } 20 map.put(chars[i], i); 21 len = i - lastNoRepeatIndex +1; 22 if(len > longestLength) { 23 longestLength = len; 24 longestIndex[0] = lastNoRepeatIndex + 1; 25 longestIndex[1] = i; 26 } 27 } 28 return longestLength; 29 }

 

LeetCode ---Longest Substring Without Repeating Characters

标签:子串   turn   ret   char   with   没有   last   元素   color   

原文地址:http://www.cnblogs.com/zousanchuan/p/6852199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!