zoukankan      html  css  js  c++  java
  • 剑指 Offer 48. 最长不含重复字符的子字符串

    public int lengthOfLongestSubstring(String s) {
            //用哈希表存储
            int len = s.length();
            if(len<=1) return len;
            char[] c = s.toCharArray();
            HashMap<Character,Integer> map = new HashMap<>();
            map.put(c[0],0);
            int max_len = 1;
            int i = 0,j = 1;
            while(j<len){
                if(map.containsKey(c[j])){
                    int index = map.get(c[j]);
                    max_len = Math.max(max_len,j-i);
                    for(int k = i;k<=index;k++){
                        map.remove(c[k]);
                    }
                    i = index+1;
                    map.put(c[j],j);
                    j++;
                }else{
                    map.put(c[j],j);
                    j++;
                }
            }
            return Math.max(max_len,j-i);
        }


    public int lengthOfLongestSubstring(String s) {
            int[] alpha = new int[128];
            for(int i=0;i<128;i++){
                alpha[i] = -1;
            }
            int left = 0;
            int ans = 0;
            for(int i=0;i<s.length();i++){
                int temp = s.charAt(i);
                if(alpha[temp] <= left){
    
                    ans = Math.max(i - left+1,ans);
                }else{
                    left = alpha[temp];
                }
                alpha[temp] = i+1;
    
            }
            return ans;
        }

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    DNS服务器详解
    numpy学习
    test_pandas
    1.爬虫基本介绍
    数据分析介绍及软件使用 01
    3.解析库beautifulsoup
    jQuery UI vs EasyUI
    "file:///" file 协议
    Display:Block
    前端响应式设计中@media等的相关运用
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13556686.html
Copyright © 2011-2022 走看看