पाठ 8 / 42
Hash Map
Hash फ़ंक्शन और bucket के ज़रिए औसतन O(1) में key → value।
Hash फिर bucket
Hash फ़ंक्शन key को array इंडेक्स में बदलता है। अलग keys एक ही bucket में टकरा सकती हैं; bucket के अंदर छोटी list (या tree) इसे सुलझाती है। अच्छे वितरण से get/put/delete औसत O(1), worst O(n)।
पहले अक्षर से पुस्तकालय
शीर्षक के पहले अक्षर से किताबें रखने पर आप सही शेल्फ़ पर तुरंत जा सकते हैं। यदि बहुत सारे शीर्षक 'S' से शुरू हों, वह शेल्फ़ धीमी — यही collision है।
एक पास में Two Sum
चलते-चलते हर संख्या का इंडेक्स रखें; डालने से पहले पूरक जाँचें।
def two_sum(nums, target):
seen = {}
for i, n in enumerate(nums):
if target - n in seen:
return [seen[target - n], i]
seen[n] = i
return []
Output:
two_sum([2, 7, 11, 15], 9) -> [0, 1]
त्वरित जाँच: आपको key से तेज़ lookup चाहिए और क्रम की परवाह नहीं। चुनें...
- Sorted array + binary search
- Hash map
- Linked list
Answer
Hash map — Hash map प्रति lookup औसत O(1); binary search O(log n) और sorting चाहिए।