From 3ab4f0b03be5968716ee9737e071b102fe9aed0a Mon Sep 17 00:00:00 2001 From: Vaishnavi Gawale Date: Sun, 11 Jan 2026 16:00:04 -0500 Subject: [PATCH 1/2] Done Competitive_Coding-3 --- k-diff-pairs-in-an-array.py | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 k-diff-pairs-in-an-array.py diff --git a/k-diff-pairs-in-an-array.py b/k-diff-pairs-in-an-array.py new file mode 100644 index 00000000..7027c070 --- /dev/null +++ b/k-diff-pairs-in-an-array.py @@ -0,0 +1,53 @@ +# ------ Solution 1 --- +''' 1. Sort array + 2. Maintain left and right pointer + 3. Append the result in set for unique + + Time complexity : O(nlogn) + Space Complexity : O(n) +''' +class Solution: + def findPairs(self, nums: List[int], k: int) -> int: + n =len(nums) + nums.sort() + l ,r = 0, 1 + res = set() + while l < n and r < n: + diff = nums[r] - nums[l] + if diff == k: + res.add((nums[l],nums[r])) + l += 1 + r += 1 + elif diff < k: + r += 1 + else: + l += 1 + + if l == r: + r += 1 + print(res) + return len(res) + +#-------Soultion 2 : Creating hasmap with frequency +''' Time complexity : O(n) + Space Complexity : O(n) + ''' +class Solution: + def findPairs(self, nums: List[int], k: int) -> int: + n =len(nums) + count = 0 + hashmap = {} + for n in nums: + hashmap[n] = 1 + hashmap.get(n,0) + for n in hashmap: + if k == 0: + if hashmap[n] >= 2: + count += 1 + else: + comp = n + k + if comp in hashmap: + count += 1 + return count + + + From d2dcee2c8926049fda91021fe862764c4266376f Mon Sep 17 00:00:00 2001 From: Vaishnavi Gawale Date: Tue, 13 Jan 2026 20:30:14 -0500 Subject: [PATCH 2/2] Done Competitive_Coding-3 --- pascals-triangle.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 pascals-triangle.py diff --git a/pascals-triangle.py b/pascals-triangle.py new file mode 100644 index 00000000..91c043c7 --- /dev/null +++ b/pascals-triangle.py @@ -0,0 +1,21 @@ +''' + Time complexity : O(n ^ 2) + Space Complexity : O(1) + + Approach : 1. Append 1 to start and end at each row + 2. Middle element = Sum of j and j-1 of previous rows +''' + +class Solution: + def generate(self, numRows: int) -> List[List[int]]: + result = [] + for i in range(numRows): + l = [] + for j in range(i+1): + if j == 0 or j == i: + l.append(1) + else: + l.append(result[i-1][j] + result[i-1][j-1]) + result.append(l) + return result +