[LeetCode]Two Sum III - Data structure design
2015-11-27 06:44
447 查看
这道题我用O(n)存O(1)取的时候会超时,但是用O(1)存O(n)取就不会超时,个人觉得是因为测试代码中存比取要多得多。。
其实觉得最好的方法应该是O(logn)存取,用两个二分搜索,但是还没太想明白应该用什么数据结构能实现
其实觉得最好的方法应该是O(logn)存取,用两个二分搜索,但是还没太想明白应该用什么数据结构能实现
public class TwoSum { private HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); // Add the number to an internal data structure. public void add(int number) { if (map.containsKey(number)) { map.put(number, map.get(number) + 1); } else { map.put(number, 1); } } // Find if there exists any pair of numbers which sum is equal to the value. public boolean find(int value) { for (int key : map.keySet()) { int target = value - key; if (map.containsKey(target)) { if (target != key) { return true; } else { if (map.get(key) > 1) { return true; } } } } return false; } } // Your TwoSum object will be instantiated and called as such: // TwoSum twoSum = new TwoSum(); // twoSum.add(number); // twoSum.find(value);
相关文章推荐
- 使用Node.js Net 模块实现简单的chat room
- 好奇 Linux?试试云端的 Linux 桌面
- FPGA原型验证
- 5.10 光栅化阶段
- windows下libyuv编译,生成vs解决方案
- [LeetCode]Implement Queue using Stacks
- 对于异常的学习总结
- [LeetCode]Number of Digit One
- 优秀的教学方法---做教练与做中学
- Android GreenDao的基本应用
- Weka 3.6下加载libsvm的类包
- Debian7下Hadoop-2.6.2伪分布式环境搭建
- 面向对象的总结复习
- 算法笔记-卡尔曼滤波器简单解释
- [LeetCode]Power of Two
- 不要学习代码,要学会思考
- [LeetCode]House Robber II
- 我是如何阅读编程书的
- 己所欲,勿施于人 --- 周国平
- Python 安全类目推荐 (持续更新)