https://medium.com/javascript-decoded-in-plain-english/day-1-of-30-how-to-solve-two-sum-in-javascript-efficiently-f758bbc63156