diff --git a/k-diff-pairs.py b/k-diff-pairs.py new file mode 100644 index 00000000..62eb44b9 --- /dev/null +++ b/k-diff-pairs.py @@ -0,0 +1,15 @@ +# O(n) time, O(n) space +class Solution: + def findPairs(self, nums: List[int], k: int) -> int: + # {1: 2, 3: 1, 4: 1, 5: 1} + # k=2 + # nums = [3,1,4,1,5] + counter = Counter(nums) + pairs=0 + for x in counter: + if k != 0 and (x + k) in counter: + pairs+=1 + elif k==0 and counter[x] >= 2: + pairs+=1 + + return pairs \ No newline at end of file diff --git a/pascals-triangle.py b/pascals-triangle.py new file mode 100644 index 00000000..138201ff --- /dev/null +++ b/pascals-triangle.py @@ -0,0 +1,21 @@ +class Solution: + def generate(self, numRows: int) -> List[List[int]]: + + # time O(n^2), space O(1) + res = [] + for i in range(1,numRows+1): + row = [1]*i + # always start at first 2 positions of prev row + l=0 + r=1 + if i > 2: + prevRow = res[-1] + p = 1 + while r < len(prevRow): + row[p] = prevRow[l]+prevRow[r] + p+=1 + l+=1 + r+=1 + res.append(row) + + return res \ No newline at end of file