diff --git a/Challenge-1/two-sum.py b/Challenge-1/two-sum.py new file mode 100644 index 0000000..3cfd199 --- /dev/null +++ b/Challenge-1/two-sum.py @@ -0,0 +1,15 @@ +class Solution(object): + def twoSum(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: List[int] + """ + prev_map = dict() + for i, num in enumerate(nums): + if target - num in prev_map: + return(i , prev_map[target-num]) + else: + prev_map[num] = i + + return -1 \ No newline at end of file diff --git a/Challenge-2/maxprofit.py b/Challenge-2/maxprofit.py new file mode 100644 index 0000000..665b26a --- /dev/null +++ b/Challenge-2/maxprofit.py @@ -0,0 +1,18 @@ +class Solution(object): + def maxProfit(self, prices): + """ + :type prices: List[int] + :rtype: int + """ + min_price = prices[0] + max_price = 0 + profit = 0 + + for price in prices: + if price < min_price: + min_price = price + max_price = price + elif price > max_price: + max_price = price + profit = max(max_price - min_price, profit) + return profit \ No newline at end of file diff --git a/Challenge-3/duplicatefinding.py b/Challenge-3/duplicatefinding.py new file mode 100644 index 0000000..9a749b4 --- /dev/null +++ b/Challenge-3/duplicatefinding.py @@ -0,0 +1,3 @@ +class Solution(object): + def containsDuplicate(self, nums): + return len(nums) != len(set(nums)) \ No newline at end of file diff --git a/Challenge-4/sumofintegers.py b/Challenge-4/sumofintegers.py new file mode 100644 index 0000000..9547add --- /dev/null +++ b/Challenge-4/sumofintegers.py @@ -0,0 +1,14 @@ +class Solution(object): + def getSum(self, a, b): + """ + :type a: int + :type b: int + :rtype: int + """ + bitshortner = 0xffffffff + + while(b & bitshortner) > 0: + carry = (a&b)<<1 + a =(a^b) + b = carry + return (a&bitshortner) if b > 0 else a \ No newline at end of file diff --git a/Challenge-6/productofarray.py b/Challenge-6/productofarray.py new file mode 100644 index 0000000..a2423b3 --- /dev/null +++ b/Challenge-6/productofarray.py @@ -0,0 +1,12 @@ +def productExceptSelf(nums): + res = [1]* len(nums) + + prefix = 1 + for i in range(len(nums)): + res[i] = prefix + prefix = prefix*nums[i] + postfix = 1 + for i in range(len(nums) -1,-1,-1): + res[i]= res[i]*postfix + postfix = postfix * nums[i] + return res diff --git a/Challenge-7/maxsubarray.py b/Challenge-7/maxsubarray.py new file mode 100644 index 0000000..543541e --- /dev/null +++ b/Challenge-7/maxsubarray.py @@ -0,0 +1,14 @@ +class Solution(object): + def maxSubArray(self, nums): + """ + :type nums: List[int] + :rtype: int + """ + maxsubarr = nums[0] + carrsum = 0 + for n in nums: + if carrsum < 0: + carrsum = 0 + carrsum += n + maxsubarr = max(maxsubarr , carrsum) + return maxsubarr \ No newline at end of file