文章
2
粉丝
18
获赞
0
访问
10
(1)对ans与数组中的每个元素进行异或操作,相同的两个元素异或的等于0,剩下一个元素就是答案
(2)
void solve() {
int n;
cin >> n;
vector<int>a(n);
for (int i = 0; i < n; i++)cin >> a[i];
int ans = 0;
for (int i = 0; i < n; i++)ans ^= a[i];//对ans与数组中的每个元素进行异或操作,相同的两个元素异或的等于0,剩下一个元素就是答案
cout << ans;
}
(3)时间复杂度为O(n),从第一个元素遍历到最后一个元素
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的设计思想虽然与标准答案不同,但利用了异或操作的性质(相同元素异或结果为0,最终剩下的即为目标元素),思路正确且高效,符合题目要求。
(2)得分及理由(满分8分)
得分:8分
理由:学生正确实现了异或操作的算法,代码逻辑清晰,注释说明了关键步骤,且完全符合题目要求。虽然实现方式与标准答案不同,但功能正确且高效。
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了算法的时间复杂度为O(n),与标准答案一致,且分析合理。
题目总分:3+8+2=13分
登录后发布评论
暂无评论,来抢沙发