题目:
题目分析:
容易看出题目函数要求算出数组中重复出现两次的数字,且返回对象也为数组。
对算法的要求上,时间复杂度要控制在O(n),也就是说排除了对每个元素进行单独检验的途径。此外,利用先排序处理再统计的方法也显得臃肿,因此在这里考虑采用利用一次遍历统计各元素出现的次数,最后在对统计结果为2的结果进行输出。初始化一个数组N,下标对应元素值,初始化为0,每遍历一个元素对应下标处的元素值++,那么一次遍历后,对N进行遍历并将值为2的元素对应下标压入新建vector<int>中。再次完成遍历后,返回vector即可。
代码完成:
代码中有三处循环遍历,且循环无嵌套,满足O(n)的要求。