From 558e768380991a222c77ff72416c629ab922a91a Mon Sep 17 00:00:00 2001 From: ashish-badhe Date: Mon, 20 Oct 2025 10:31:20 -0400 Subject: [PATCH 1/3] K-diff pairs --- KDiffPairs.java | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 KDiffPairs.java diff --git a/KDiffPairs.java b/KDiffPairs.java new file mode 100644 index 00000000..fecaf4f2 --- /dev/null +++ b/KDiffPairs.java @@ -0,0 +1,38 @@ + +// 532. K-diff Pairs in an Array +// https://leetcode.com/problems/k-diff-pairs-in-an-array/description/ + +/** + * Time Complexity: O(n) since we iterate over each element + * Space Complexity: O(n) since in worst case we store all elements + */ + +class Solution { + public int findPairs(int[] nums, int k) { + Map map = new HashMap<>(); + + int count = 0; + + for(int num : nums){ // count frequency of numbers + map.put(num, map.getOrDefault(num, 0) + 1); + } + + for(int num : map.keySet()){ // iterating on keys as we want unique pairs + + int anotherNumber = num + k; + + // if k is 0, we need to check if the same number exists more than once as we cannot consider same number + if(k == 0){ + if(map.get(anotherNumber) > 1){ + count++; + } + }else{ + if(map.containsKey(anotherNumber)){ + count++; + } + } + } + + return count; + } +} \ No newline at end of file From 042ae461f272af9763405fd5985b516fc85e4f30 Mon Sep 17 00:00:00 2001 From: ashish-badhe Date: Mon, 20 Oct 2025 11:17:54 -0400 Subject: [PATCH 2/3] Pascals Triangle --- PascalsTriangle.java | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 PascalsTriangle.java diff --git a/PascalsTriangle.java b/PascalsTriangle.java new file mode 100644 index 00000000..c14a0230 --- /dev/null +++ b/PascalsTriangle.java @@ -0,0 +1,37 @@ +// 118. Pascal's Triangle +// https://leetcode.com/problems/pascals-triangle/description/ + +/** + * Time Complexity: O(n * m) ~ O(n^2) since we iterate over each element + * Space Complexity: O(1) since no auxillary space as we dont consider result + */ + + + +class Solution { + public List> generate(int numRows) { + List> result = new ArrayList<>(); + + for(int i = 2 ; i < numRows ; i++){ + + List currList = new ArrayList<>(); + + for(int j = 0 ; j <= i ; j++){ + + if(j == 0 || j == i){ // if first or last index , fill with 1 + currList.add(1); + }else{ + List prevList = result.get(i - 1); + + int currNumber = prevList.get(j - 1) + prevList.get(j); // else add previous list elements + + currList.add(currNumber); + } + } + + result.add(currList); + } + + return result; + } +} \ No newline at end of file From 56fad37921e9174c39ba3ccb728228f4f54480ee Mon Sep 17 00:00:00 2001 From: ashish-badhe Date: Mon, 20 Oct 2025 12:11:38 -0400 Subject: [PATCH 3/3] fixed logic to start from first row --- PascalsTriangle.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PascalsTriangle.java b/PascalsTriangle.java index c14a0230..489b9dbf 100644 --- a/PascalsTriangle.java +++ b/PascalsTriangle.java @@ -12,18 +12,18 @@ class Solution { public List> generate(int numRows) { List> result = new ArrayList<>(); - for(int i = 2 ; i < numRows ; i++){ + for(int i = 0 ; i < numRows ; i++){ List currList = new ArrayList<>(); for(int j = 0 ; j <= i ; j++){ - if(j == 0 || j == i){ // if first or last index , fill with 1 + if(j == 0 || j == i){ currList.add(1); }else{ List prevList = result.get(i - 1); - int currNumber = prevList.get(j - 1) + prevList.get(j); // else add previous list elements + int currNumber = prevList.get(j - 1) + prevList.get(j); currList.add(currNumber); }