Given a string, find the length of the **longest substring** without repeating characters.

**Example 1:**

Input:"abcabcbb"Output:3Explanation:The answer is`"abc"`

, with the length of 3.

**Example 2:**

Input:"bbbbb"Output:1Explanation:The answer is`"b"`

, with the length of 1.

**Example 3:**

Input:"pwwkew"Output:3Explanation:The answer is`"wke"`

, with the length of 3. Note that the answer must be asubstring,`"pwke"`

is asubsequenceand not a substring.

class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(), ans = 0; Map<Character,Integer> map =new HashMap<>(); for(int j=0,i=0;j<n;j++){ if(map.containsKey(s.charAt(j))){ i = Math.max(map.get(s.charAt(j)),i); } ans = Math.max(ans,j-i+1); map.put(s.charAt(j),j+1); } return ans; } }

Runtime: 7 ms, faster than 82.37% of Java online submissions for Longest Substring Without Repeating Characters.

Memory Usage: 36 MB, less than 100.00% of Java online submissions for Longest Substring Without Repeating Characters.