🚀 𝐂𝐨𝐦𝐩𝐞𝐭𝐢𝐭𝐢𝐯𝐞 𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 | 𝐇𝐚𝐬𝐡𝐢𝐧𝐠 𝐓𝐞𝐜𝐡𝐧𝐢𝐪𝐮𝐞 + 𝐅𝐫𝐞𝐪𝐮𝐞𝐧𝐜𝐲 𝐌𝐚𝐩 | 𝐂𝐨𝐮𝐧𝐭 𝐍𝐮𝐦𝐛𝐞𝐫 𝐨𝐟 𝐏𝐚𝐢𝐫𝐬 𝐖𝐢𝐭𝐡 𝐀𝐛𝐬𝐨𝐥𝐮𝐭𝐞 𝐃𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐜𝐞 𝐊 𝐏𝐫𝐨𝐛𝐥𝐞𝐦 𝐒𝐭𝐚𝐭𝐞𝐦𝐞𝐧𝐭: Count Number of Pairs With Absolute Difference K Given an integer array nums and an integer k, we need to count the number of pairs (i, j) such that: i < j |nums[i] - nums[j]| == k At first glance, a brute-force solution using nested loops seems straightforward, but it results in O(n²) time complexity, but it is not efficient for larger constraints. 💡 𝐎𝐩𝐭𝐢𝐦𝐚𝐥 𝐀𝐩𝐩𝐫𝐨𝐚𝐜𝐡 𝐔𝐬𝐢𝐧𝐠 𝐇𝐚𝐬𝐡𝐢𝐧𝐠 To optimize the solution, I used a Hash Map / Frequency Map approach. ✅ Key Idea: While traversing the array: Check whether (currentElement - k) already exists. Check whether (currentElement + k) already exists. Add their frequencies to the answer. Store/update the current element frequency in the hash map. ⚡ Time Complexity O(n) — Single traversal using hashing. ⚡ Space Complexity O(n) — For storing frequencies in the hash map. 🧠 Concepts Used ✔️ Hashing ✔️ Frequency Map ✔️ Array Traversal ✔️ Optimization from Brute Force to Optimal 🔗 Optimal Approach Code Link 👉 https://lnkd.in/gBe4ubet ------- I post DSA problems (1x daily) Hit the 🔔 icon → Select “𝐀𝐥𝐥” to get the link first Follow ( Krupesh Patil ) 💙 Like | ♻️ Repost | 💬 Comment ------- #CompetitiveProgramming #DSA #Hashing #Cpp #Programming #Coding #ProblemSolving #DataStructures #Algorithms #FrequencyMap #SoftwareEngineering
This is a great example of how the right data structure completely changes performance. A problem that starts with O(n²) brute force becomes O(n) just by thinking in terms of frequency maps and lookups instead of comparisons. That shift in thinking is what makes DSA powerful.
Informative 👍
“Really insightful post! Loved the way you explained the concept in a simple and practical manner.”
Really liked step by step breakdown approach
“Great breakdown of the optimal approach and complexity analysis.”
“This deserves more reach. Very informative and beginner-friendly explanation!”
Competitiveprogramming++
Great share 👏🏻
Great Insights
Follow Krupesh Patil for more updates