文章

65

粉丝

19

获赞

367

访问

38.8k

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

1.找正数的最大值

和负数的最小值,若A[i]是正数则乘正数的最大值,反之乘负数的最小值

2.

void CallMulMax(int A[], int res[],int n){
	int ma = INT_MIN; //存储最小值
	int mi = INT_MAX; //存储最大值
	for(int i=0;i<n;i++){
		if(A[i]>0)
			ma = max(ma,A[i]);
		else
			mi = min(mi,A[i]);
	}
	for(int i=0;i<n;i++){
		if(A[i]>0){
			res[i] = ma*A[i];
		}
		else{
			res[i] = mi*A[i];
		}
	}
}

3.时间复杂度为O(n)空间复杂度为O(1)

 

 

 
 
 

评分及理由

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

得分:2分

理由:学生的基本思想部分提到了找正数的最大值和负数的最小值,但未考虑到乘积的最大值可能由两个负数相乘得到(如示例中的-9*-9=81)。此外,未说明如何处理从当前位置到末尾的最大值和最小值,因此思路不完全正确。

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

得分:3分

理由:代码逻辑存在错误,仅考虑了当前元素与全局最大值或最小值的乘积,未正确处理从当前位置到末尾的极值问题(如示例中的-9需要与自身相乘得到最大值81)。此外,代码未处理所有可能的乘积情况(如正数与负数相乘的极端情况),导致结果不正确。

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

得分:1分

理由:时间复杂度和空间复杂度的分析是正确的,但由于算法逻辑错误,实际复杂度虽然符合O(n)和O(1),但结果不正确,因此扣1分。

题目总分:2+3+1=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发