一:解题思路
add:Time:O(1),find,Time:O(n)
二:完整代码示例 (C++版和Java版)
C++:
class TwoSum { private: vector<int> data; public: void add(int number) { data.push_back(number); } bool find(int value) { set<int> s; for (int num : data) { if (s.count(value - num) != 0) return true; s.insert(num); } return false; } };
Java:
public class TwoSum { private List<Integer> data=new ArrayList<>(); public void add(int number) { data.add(number); } public boolean find(int value) { Set<Integer> s=new HashSet<>(); for(int num:data) { if(s.contains(value-num)) return true; s.add(num); } return false; } }
p128 设计一个类求和为给定值的两个数(lintcode 607)
原文:https://www.cnblogs.com/repinkply/p/12704230.html