diff --git a/Contiguous_array.py b/Contiguous_array.py new file mode 100644 index 00000000..d6a5ed9c --- /dev/null +++ b/Contiguous_array.py @@ -0,0 +1,20 @@ +class Solution: + def findMaxLength(self, nums: List[int]) -> int: + + running_sum=0 + map={} + max_length=0 + + map[0]=-1 + + for i in range(len(nums)): + if nums[i]==0: + running_sum=running_sum-1 + else: + running_sum+=1 + if running_sum not in map: + map[running_sum]=i + else: + max_length=max(max_length, i-map[running_sum]) + return max_length + \ No newline at end of file diff --git a/Longest_Palindrome.py b/Longest_Palindrome.py new file mode 100644 index 00000000..3dd5af36 --- /dev/null +++ b/Longest_Palindrome.py @@ -0,0 +1,18 @@ +class Solution: + def longestPalindrome(self, s: str) -> int: + + count=0 + a_set=set() + + for i in range(len(s)): + if s[i] not in a_set: + a_set.add(s[i]) + else: + count=count+2 + a_set.remove(s[i]) + if len(a_set)>0: + return count+1 + else: + return count + + \ No newline at end of file diff --git a/subarray sum equals K.py b/subarray sum equals K.py new file mode 100644 index 00000000..aab8167e --- /dev/null +++ b/subarray sum equals K.py @@ -0,0 +1,18 @@ +class Solution: + def subarraySum(self, nums: List[int], k: int) -> int: + + running_sum=0 + + map={} + map[0]=1 + count=0 + for i in range(len(nums)): + running_sum+=nums[i] + if running_sum-k in map: + count=count+map[running_sum-k] + if running_sum not in map: + map[running_sum]=1 + else: + map[running_sum]+=1 + + return count \ No newline at end of file