-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolution.java
45 lines (34 loc) · 1.28 KB
/
solution.java
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
35
36
37
38
39
40
41
42
43
44
45
class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length(), maxLen = 0;
Map<Character, Integer> map = new HashMap<>();
for(int l = 0, r = 0; r < n; r++){
char ch = s.charAt(r);
//We got previous entry so move left pointer
if(map.containsKey(ch)){
l = Math.max(l, map.get(ch));
}
//Update length and map entry
maxLen = Math.max(maxLen, r - l + 1);
map.put(ch, r + 1);
}
// //O(n2)
// for(int l = 0, r = 0; l < n && r < n; l++){
// //Reset and move forward
// set.clear();
// for(r = l; r < n; r++){
// char ch = s.charAt(r);
// //Check prev entry
// if(set.contains(ch)){
// break;
// }
// System.out.println(ch);
// //Put char entry
// set.add(ch);
// }
// System.out.println();
// maxLen = Math.max(maxLen, r - l); //Calculate maximum length
// }
return maxLen;
}
}