Skip to content

Instantly share code, notes, and snippets.

View deeheem's full-sized avatar

Deeheem Ansari deeheem

  • New Delhi, India
View GitHub Profile
public int lengthOfLongestSubStringAtMostKDistinct(String s, int k) {
int n = s.length();
int[] count = new int[256];
int i = 0, numDistinct = 0, ans = 0;
for (int j = 1; j < s.length(); j++) {
if (count[s.charAt(j)] == 0) {
numDistinct++;
}
count[s.charAt(j)]++;
public int lengthOfLongestSubStringKDistinct(String s) {
int n = s.length();
int[] count = new int[256];
int i = 0, numDistinct = 0, ans = 0;
for (int j = 1; j < s.length(); j++) {
if (count[s.charAt(j)] == 0) {
numDistinct++;
}
count[s.charAt(j)]++;
public int lengthOfLongestSubStringTwoDistinct(String s) {
int n = s.length();
int i = 0, j = -1, ans = 0;
for (int k = 1; k < s.length(); k++) {
if (s.charAt(k) == s.charAt(k - 1)) {
continue;
}
if (j >= 0 && s.charAt(j) != s.charAt(k)) {
ans = Math.max(ans, k - i);
public int lengthOfLongestSubString(String s) {
int n = s.length();
Set<Character> set = new HashSet<>();
int ans = 0, i = 0, j = 0;
while (i < n && j < n) {
if (!set.contains(s.charAt(j))) {
set.add(s.charAt(j));
j++;
ans = Math.max(ans, j - i);
} else {