文章

130

粉丝

0

获赞

0

访问

6.0k

头像
2025年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年8月13日 22:37
阅读数 128

1):首先对数组进行排序,其次判断A[i]是正是负,如果是正数则让它与最大的正数相乘,如果是负数则和最小的负数相乘,如果是0,则结果直接是0。

2):  void CallMulMax(int A[], int res[],int n){

           A[n].sort();   //首先对数组A[n]进行排序

           int j=0;

           for(int i=0;i<n;i++){
                if(A[i]==0)res[j++]=0;   

                else if(A[i]<0)res[j++]=A[i]*A[0];

               else res[j++]=A[i]*A[n-1];

}

3):因为对数组进行了排序因此时间复杂度是o(nlogn),空间复杂度是o(1);


评分及理由

(1)得分及理由(满分4分)

得分:2分

理由:学生提出的思路与标准答案不同,但存在逻辑错误。排序后直接取最大或最小值的乘积并不能保证得到正确的res[i]值,因为题目要求的是A[i]与A[j](i ≤ j ≤ n-1)乘积的最大值,而排序后改变了元素的相对位置,可能导致错误的j值。此外,未考虑负数相乘可能得到更大的正数的情况。

(2)得分及理由(满分7分)

得分:3分

理由:代码实现与标准答案不一致,且存在逻辑错误。排序后直接取A[0]或A[n-1]的乘积无法保证正确性。此外,代码中未正确处理负数相乘的情况,且未考虑动态更新最大值和最小值的逻辑。代码注释和逻辑清晰度不足。

(3)得分及理由(满分2分)

得分:1分

理由:时间复杂度分析正...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发