2-sum问题 实现找数组中的二元数组(a,b)(a+b=0)
方法一:
循环 O(n2)
方法二:二分查找:
for(int i =0 ; i < n; i++){
Binary_Search(-a[i]);
}
结果 O(nlogn)
方法三:牺牲空间换取时间 基数排序算法
比如10^8内的整数
a[10^8]=0或者1
如果是1的话,代表在,如果是0,代表不存在
遇到一个数字的时候,在数组中比较是否存,就可以实现O(1)
for(int i =0 ; i<n ;i++){
if(a[i] == 1) 存在;
else 不存在;
}