今天做题不多,被某一道题卡了好久,一直超时。
"逆序对个数"是输入一串数字,若i<j,但是a[i]>a[j]则称为一个逆序对,判断这组数字中的逆序对的个数。这道题可以直接输入这个数组,然后使用两个循环进行判断,即:
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(a[i]>a[j])
s++;
}
}
"数字游戏"是输入一个数组,去掉数组中间乱序的数,使剩下的数字输出,剩下的数字呈现倒序。开始我想的是先把数组清零,用循环把数组输入,然后进行判断,若后面的数大于前面的数,则把前面的数清零,最后按序输出所有不是零的数。但是这种方法超时,我的第二种思路是在输入数组的过程中,若遇到a[i]>a[i-1]的情况,则向前循环,把前面小于a[i]的数都清零。但是这种方法也超时了。我还没想到别的改法。
明天继续!!!
2019年2月9日学习日记
最新推荐文章于 2020-02-10 01:16:52 发布