From 77a97605c1e1d5a55a8ee61d357b79f5ed422888 Mon Sep 17 00:00:00 2001 From: Piyush Chaudhary Date: Sun, 28 May 2017 15:07:57 -0400 Subject: [PATCH] Looks inefficient to me. This code will still run in O(N*2) time when m = n. --- LongestSubstringWithMUniqueCharacters.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LongestSubstringWithMUniqueCharacters.java b/LongestSubstringWithMUniqueCharacters.java index 38eb02f..97e06ec 100644 --- a/LongestSubstringWithMUniqueCharacters.java +++ b/LongestSubstringWithMUniqueCharacters.java @@ -56,7 +56,7 @@ public static String solution(String s, Integer m) throws Exception } end++; //move start forward if number of unique characters is greater than m - while(!isLessThanM(hash,m)) + while(!isLessThanM(hash,m)) // O(N) time in worst case when m = n. { int temp = hash.get((int)s.charAt(start)); hash.put((int)s.charAt(start),--temp); @@ -73,7 +73,7 @@ public static String solution(String s, Integer m) throws Exception } - public static boolean isLessThanM(HashMap hash, Integer m) + public static boolean isLessThanM(HashMap hash, Integer m) // O(HashMap size) runtime. { int count =0; for(Integer key:hash.keySet())