文章

316

粉丝

0

获赞

0

访问

46.9k

头像
2025年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年10月12日 20:05
阅读数 109

1):直接遍历数组对于给定的i,通过遍历数组比较A[i]*A[j]与maxnum的值,如果大于则将maxnum=A[i]*A[j],当本轮循环结束后使得res[i]=maxnum,并重复上述步骤直到i=n即可;

 2):

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

          int maxnum=-1;//记录给定i对应的乘积最大值

         for(int i=0;i<n;i++){

             for(int j=i;j<n;j++)

              {

                  if(A[i]*A[j]>maxnum)maxnum=A[i]*A[j];//如果当前乘积比maxnum大就更新maxnum;

              }

            res[i]=maxnum;//本轮结束记录maxnum;

     }

}

3):时间复杂度是o(n^2),空间复杂度是o(1);


评分及理由

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

得分:2分

理由:学生给出的算法基本思想是暴力枚举法,通过双重循环计算每个i对应的最大乘积。虽然思路正确,但未达到题目要求的"时间空间上尽可能高效"的标准。标准答案采用动态维护极值的方法,时间复杂度为O(n),而学生的方案为O(n²),效率较低。考虑到基本思想正确但不够高效,扣2分。

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

得分:4分

理由:代码实现了暴力解法,逻辑正确但存在以下问题:

  • maxnum初始值设为-1不合理,当数组元素全为负数且乘积小...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发