设计b并实现一个 TwoSum 类。他需要支持以下操作:add 和 find。
add -把这个数添加到内部的数据结构。
find -是否存在任意一对数字之和等于这个值
vector
动态数组
允许重复
声明 初始化
对算法的执行效率改进
利用map,可以以O(1)的时间进行全局查找
所以时间复杂度为O(N)
bool find(int value){
Map<Integer,map> map = new HashMap<>();
for(int i =0 ; i<num.size();i++){
int target = value -num[i];
if(map.contains(target)){
return new int[]{i,map.get(target)};//通过值获取到下标
}
map.put(num[i],i);//key,value
}
throw new IllegalArgumentException("unfind!");
}
``