问题描述
在一个int类型的数组中除有两个元素各出现了一次外,其它元素都出现了两次,最好能保证最好的时空效率。
算法一
回溯算法:
1 | #include <iostream> |
测试结果:
test1:
test2:
test3:
评价:
空间复杂度为O(1),时间复杂度上大于 O(n)小于等于O(n^2),
空间上达到要求,时间上未达到要求,需要改进算法。
算法二
位运算算法:
1 | #include <iostream> |
测试结果:
test1:
读者可以自行设计测试样例进行测试
评价:
由于只遍历了一遍数组的元素,故时间复杂度为o(n)
空间复杂度为o(1),符合题目要求
—-end—