文章
2
粉丝
0
获赞
1
访问
115
(1)
利用异或运算,因为成对出现的数字异或之后为0,最后只有单独出现的异或结果为1
(2)
int FindOnlyOne(int arr[r] , int n ) {
int ans = 0 ;
for(int i = 0 ; i <= n ; i++) {
ans ^= arr[i]; // 给所有元素进行异或
}
return ans; // 剩下的就是只出现一次的元素
}
(3) O(N)
评分及理由
(1)得分及理由(满分3分)
得分:1分
理由:学生提出了使用异或运算的思路,虽然方法可行,但与题目要求的"相同元素一定相邻"这一条件不符。题目明确要求利用相邻特性设计算法,而学生的思路没有利用这一关键条件。
(2)得分及理由(满分8分)
得分:4分
理由:代码实现了异或运算的思路,但存在以下问题:1) 函数参数定义错误(arr[r]应为arr[]),2) 循环条件错误(i<=n应为i (3)得分及理由(满分2分) 得分:2分 理由:时间复杂度分析正确,为O(N)。 题目总分:1+4+2=7分
登录后发布评论
暂无评论,来抢沙发