已给出递推公式,思路是先把0-500000的结果计算出来,用一个数组记录值在目标数组中是否存在。由于未知目标数组的最大值(粗略估计500000*500001/2),所以用位运算的话所需内存仍然很大,可以先写个程序测试一下,找到最大值。(当然,这样是偷懒滴)
最好还是要用hash表。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。
收获:
1.vector
2.memset include string.h
3.memory size limit
下面是用hash表的算法,注意hash_map不在标准库里头,编译应加一些宏定义