ਇੱਕ hash map (ਸ਼ਬਦ-ਕੋਸ਼) O(1) ਔਸਤ ਲੁਕਅਪ, ਪ੍ਰਵੇਸ਼ ਅਤੇ ਮਿਟਾਉਣਾ ਦਿੰਦਾ ਹੈ। O(n) ਮੈਮੋਰੀ ਦੇ ਨਿਵੇਸ਼ ਨੂੰ ਗਤੀ ਲਈ ਬਦਲ ਕੇ, ਬਹੁਤ ਸਾਰੇ O(n²) ਐਲਗੋਰਿਦਮ ਨੂੰ O(n) ਵਿੱਚ ਤਬਦੀਲ ਕਰਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਦੁਹਰਾਏ ਗਏ ਸਕੈਨ ਨੂੰ ਤਾਤਕਾਲਿਕ ਲੁਕਅਪ ਨਾਲ ਬਦਲ ਕੇ।
ਵਿਚਾਰ
ਹਰ ਵਾਰ ਸੂਚੀ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਬਜਾਏ, ਹੈਸ਼ ਮੈਪ ਵਿੱਚ ਦੇਖੀ ਗਈ ਮੁੱਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰੋ ਅਤੇ ਸਧਾਰਨ ਸਮੇਂ ਵਿੱਚ ਰਾਖਵੀ ਰਾਜ ਦੀ ਜਾਂਚ ਕਰੋ।
ਉਦਾਹਰਨ: O(n) ਵਿੱਚ two-sum
python
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
