PATB1032存疑已解决
算法笔记86页,疑惑:如何动态申请,添加二维数组元素。
如何保存无序输入的多组有联系的数据。
一维数组,同样坐标的会被覆盖。
二维数组,第二维数组大小如何设置,怎么根据第一维来处置第二维。
结构体,会重叠数据,或者很麻烦。
看了其他人的解答:
一,num[],score[]两个数组,相同学校的分数相加,需两轮循环。从num[0]开始,寻找相同学校者,累加。第一轮结束,再从num[x]开始,第一个不等于num[0]的学校,再次循环。
题目给出N<100000,所以两轮循环的时间复杂度是10的10次方,一般1s内能进行10的7-8次方运算,所以两个数组两轮循环会超时。
法二:
sch[id]+=score;不保存数组,直接相加。
这种方法需谨记。
#include<stdio.h>
int main(){int n,id,i,score;scanf("%d",&n);int sch[n]={0};for(i=0;i<n;i++){scanf("%d%d",&id,&score);sch[id]+=score; }int temp=sch[0],N=0;for(i=0;i<n;i++){if(sch[i]>temp) {temp=sch[i];N=i;}}
更多推荐
PATB1032存疑已解决
发布评论