Two Sum III - Data structure design
Design and implement a TwoSum class. It should support the following operations: add and find.
add - Add the number to an internal data structure.
find - Find if there exists any pair of numbers which sum is equal to the value.
For example,
add(1); add(3); add(5);
find(4) -> true
find(7) -> false
import scala.collection.mutable.Map
class TwoSum {
var counter = Map[Int, Int]() withDefaultValue 0
def add(num: Int): Unit = {
counter += (num -> (counter(num) + 1))
}
def find(target: Int): Boolean = {
for ((num, count) <- counter) {
val diff = target - num
val found = {
if (diff == num) counter(num) > 1
else counter(diff) > 0
}
if (found) return true
}
false
}
}
val twoSum = new TwoSum
for (i <- Array(1, 3, 5))
twoSum.add(i)
twoSum.find(4)
twoSum.find(7)
Last updated