Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

leetcode/hash-table/TwoSum.java

See original GitHub issue

There is a better solution for the TwoSum problem than the hashmap solution. Sure hashmap is fine and meets the desired output. however it can be completely eliminated as such. The techinque employs a pointers to track the argument array i.e. one from the begining aka `head` and the other one from the end aka `tail`. A single sweep on the array and adjusting the two pointers does the job rather nicely.

``````       //input array must be sorted
int head =0;  int tail = arr.length -1;  int k = 11;  //target sum to find

int sum = arr[head] + arr[tail];
if(sum == k)  return true; //found it !!
else --tail;
}

``````

Issue Analytics

• State:
• Created 5 years ago

2reactions
vin0010commented, Nov 19, 2018

May be this is not completely related to the discussion. But with hash map and tuple together, we can solve this problem easily.

``````def get_count_map(nums):
count_map = dict()
for i in range(0, len(nums)):
if nums[i] in count_map:
temp = count_map[nums[i]]
temp[1].append(i)
temp = (temp[0]+1, temp[1])
count_map[nums[i]] = temp
else:
count_map[nums[i]] = (1, [i])
return count_map

def print_indices(count_map, k):
for i in count_map:
if 2*i == k:
return [count_map[i][1][0], count_map[i][1][1]]
break
else:
if k-i in count_map:
return [count_map[i][1][0], count_map[k-i][1][0]]
break
``````

https://github.com/vin0010/Competitve-Programming/blob/master/python/leetcode/TwoSum.py

0reactions
IAmPramodcommented, Oct 16, 2018

@sragha45 Yes, you are correct. But O(NlogN) is the worst case scenario when we have a very poor implementation of hash code which will map all entries to same bucket.

Have a look at the performance of hashmap in average case. https://dzone.com/articles/hashmap-performance

Top Results From Across the Web

[Java] Hash table implementation: (Accepted Solution)
Here's my solution for the Two Sum problem using a Hash table. Adding each element to the Hash table takes linear time (O(n))....
LeetCode[Tree]: Binary Search Tree Iterator - CSDN博客
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.

Troubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free