Two Sum III - Data structure design
add(1); add(3); add(5);
find(4) -> true
find(7) -> falseimport 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