文章
19
粉丝
0
获赞
0
访问
645
(1)从a0遍历数组,检查元素的后一个是否有相同的如果有相同的则i=i+2,如果无相同的则直接输出该元素。
(2)#include <iostream> #include <vector> using namespace std; int main() { vector<int> arr = {1, 1, 2, 3, 3, 4, 4}; // 示例数组,元素按相邻相同排列 int n = arr.size(); for (int i = 0; i < n; ) { if (i + 1 < n && arr[i] == arr[i + 1]) { // 如果后一个元素相同,跳过两个元素 i += 2; } else { // 如果当前元素没有相同的后继,说明是只出现一次的元素 cout << "只出现一次的元素是: " << arr[i] << endl; break; } } return 0; }
(3)时间复杂度为o(n)
评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的设计思想与标准答案一致,都是通过遍历数组并比较相邻元素来找出仅出现一次的元素。思路清晰且正确,因此不扣分。
(2)得分及理由(满分8分)
得分:8分
理由:学生的代码实现与标准答案逻辑一致,通过遍历数组并比较相邻元素来找出目标元素。代码结构清晰,关键部分有注释说明(虽然是用中文描述的),且正确处理了边界情况(如最后一个元素为目标元素的情况)。因此不扣分。
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了算法的时间复杂度为O(n),与标准答案一致,因此不扣分。
题目总分:3+8+2=13分
登录后发布评论
暂无评论,来抢沙发