文章
2
粉丝
0
获赞
0
访问
178
(1)使用一个辅助数组cnt来记录每个元素出现的次数,数组下标即为对应元素。先遍历整个数组统计出现次数,再遍历一次输出cnt数组中值为1的元素。
(2)
#include <iostream>
using namespace std;
const int N = 100010;
int cnt[N], a[N];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i ++ )
{
cin >> a[i];
cnt[a[i]] ++ ;
}
for (int i = 0; i < n; i ++ )
{
if (cnt[a[i]] == 1) cout << a[i] << endl;
}
return 0;
}
(3)时间复杂度O(N)
评分及理由
(1)得分及理由(满分3分)
得分:1分
理由:学生的设计思想虽然可以解决问题,但不符合题目要求的“时间上尽可能高效”的条件。题目中明确说明“相同元素一定相邻”,可以利用这一特性设计更高效的算法(如标准答案中的方法)。学生的解法使用了辅助数组和两次遍历,时间和空间复杂度均不如标准答案高效。
(2)得分及理由(满分8分)
得分:4分
理由:学生的代码实现了统计元素出现次数的功能...
登录后发布评论
暂无评论,来抢沙发