From 2f4bc3ce379db9047253a0957550a5414f099f2a Mon Sep 17 00:00:00 2001 From: nikhylw <1.nikhil.wani+nikhly@gmail.com> Date: Mon, 11 May 2026 04:34:52 +0530 Subject: [PATCH] add interview-2 solutions --- W3_interview_k-diff-pairs.py | 24 ++++++++++++++++++++++++ W3_interview_pascals.py | 26 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 W3_interview_k-diff-pairs.py create mode 100644 W3_interview_pascals.py diff --git a/W3_interview_k-diff-pairs.py b/W3_interview_k-diff-pairs.py new file mode 100644 index 00000000..3beb82d7 --- /dev/null +++ b/W3_interview_k-diff-pairs.py @@ -0,0 +1,24 @@ +class Solution: + def findPairs(self, nums: List[int], k: int) -> int: + + seen = set() + result = set() + + for i in range(0, len(nums)): + big = nums[i] + k + small = nums[i] - k + + if big in seen: + res = tuple(sorted([nums[i], big])) + result.add(res) + + if small in seen: + res1 = tuple(sorted([nums[i], small])) + result.add(res1) + + seen.add(nums[i]) + + return len(result) + +# Time complexity: O(n) +# Space complexity: O(n) diff --git a/W3_interview_pascals.py b/W3_interview_pascals.py new file mode 100644 index 00000000..bd5e9b28 --- /dev/null +++ b/W3_interview_pascals.py @@ -0,0 +1,26 @@ +class Solution: + def generate(self, numRows: int) -> List[List[int]]: + + result = [] + + # Insert 0s for all the rows in in creasing order + for i in range(numRows): + row = [0] * (i + 1) + result.append(row) + + # Insert 1s in first and last index of each row + for i in range(numRows): + result[i][0] = 1 + result[i][-1] = 1 + + # Fill the middle values + for i in range(2, numRows): + for j in range(1, i): + result[i][j] = result[i - 1][j - 1] + result[i - 1][j] + + return result + +# Time complexity: O(numRows^2) +# Space complexity: O(numRows^2), because we store the full triangle + +