zoukankan      html  css  js  c++  java
  • [leetcode]3. Longest Substring Without Repeating Characters无重复字母的最长子串

    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 subsequenceand not a substring.

    题意:

    给定一个字符串, 求其中无重复字母的最长子串

    Solution1:

    maintain a sliding window [start...i], making sure that each char in such window, its frequency is 1 (without Repeating chars)

    when one char's frequency > 1, there is repeating char, then move pointer start to find the next window

    code:

     1 /* 
     2    Time Complexity: O(n)
     3    Space Complexity: O(256)
     4 */
     5 class Solution {
     6     public int lengthOfLongestSubstring(String s) {
     7         // corner case 
     8         if( s == null || s.length() == 0) return 0;
     9         
    10         int[] map = new int[256];
    11         int result = 0;
    12         int start = 0;
    13         for(int i = 0; i < s.length(); i++){
    14             map[s.charAt(i)] ++;
    15             if(map[s.charAt(i)] > 1){
    16                 while(map[s.charAt(i)] > 1){
    17                     map[s.charAt(start)]--;
    18                     start++;
    19                 }
    20             } 
    21            result = Math.max(result, i - start + 1);   
    22         }
    23         return result;
    24     }
    25 }
  • 相关阅读:
    用css实现三角形
    css实现加载中的效果
    图片轮播图插件
    支付密码框
    angular里面ng-class的几个用法
    Redis数据恢复
    Jenkins简单介绍
    spring框架中定时器的配置及应用
    springMVC与freemarker的整合
    freemarker入门小例子
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9201944.html
Copyright © 2011-2022 走看看