文章
7
粉丝
0
获赞
0
访问
271
(1)遍历数组,将其中所有值进行异或运算,最终得到的结果就是只出现一次的元素的值。
(2)C++代码如下:
int findElement(Sqlist &S) {
int ans = 0;
for (int i = 0; i < S.size(); i++) {
ans ^= S[i]; //对每个元素进行异或运算
}
return ans;
}
(3)只需遍历一次数组,时间复杂度为O(n)。
评分及理由
(1)得分及理由(满分3分)
得分:0分
理由:题目中明确要求“相同元素一定相邻”,而学生的设计思想(异或运算)适用于无序数组中找出唯一出现一次的元素,不符合题目条件。因此,设计思想错误。
(2)得分及理由(满分8分)
得分:0分
理由:代码实现基于错误的设计思想(异或运算),未能正确解决问题。虽然代码本身语法正确,但逻辑不符合题目要求(未利用“相同元素相邻”的条件)。
(3)得分及理由(满分2分)
得分:0分
理由:虽然时间复杂度分析正确(O(n)),但由于算法本身错误,此部分得分无效。
题目总分:0+0+0=0分
登录后发布评论
暂无评论,来抢沙发