public int[] maxcost()
{
int [] maxnum=new int[2]; //长度2的数组保存最大和次大数的索引
int maxcost1,maxcost2; //分别保存最大和次大的数
if(group_cost[0]>=group_cost[1]) //先将数组前两个数比较大小后赋值给maxcost
{
maxcost1=group_cost[0];
maxcost2=group_cost[1];
maxnum[0]=0;
maxnum[1]=1;
}
else
{
maxcost1=group_cost[1];
maxcost2=group_cost[0];
maxnum[0]=1;
maxnum[1]=0;
}
for(int i=2;i<M;i++) //从第三个数开始遍历
{
if(maxcost1<group_cost[i]) //若比当前最大的大则替换,并且将次大的数替换
{
maxcost2=maxcost1;
maxnum[1]=maxnum[0];
maxcost1=group_cost[i];
maxnum[0]=i;
}
else if(maxcost2<group_cost[i]) //如果没有最大的大,但是比次大的大,则将次大数替换
{
maxcost2=group_cost[i];
maxnum[1]=i;
}
}
return maxnum;
}
//只需遍历一次。新人一枚,如果还有更优的算法,还望博友不吝赐教