无重复字符的最长子串(给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.*;
 
 
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        // write code here
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        int left = 0;
        int max = 1;
        hashMap.put(arr[0],0);
        for(int i=1;i<arr.length;i++){
            if(!hashMap.containsKey(arr[i])){
                hashMap.put(arr[i], i);
                max = Math.max(max, i-left+1);
            }else {
                int temp = hashMap.get(arr[i]);
                while(left <= temp){
                    hashMap.remove(arr[left]);
                    left++;
                }
                hashMap.put(arr[i], i);
                left = temp + 1;
            }
        }
        return max;
    }
}

  

posted @   樱圃  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示