题目
答案
#include<stdio.h>
#include<math.h>
int main()
{
int n,x,y;
scanf("%d",&n);
int a[n],temp,i,j,b[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d %d",&x,&y);
int count=0,flag=0;
i=0,j=0;
while(i<n)
{
if(a[i]>=x&&a[i]<=y)
i++;
else
a[j++]=a[i++];
}
for(i=0;i<j;i++)
{
if(flag==0)
{
printf("%d",a[i]);flag=1;
}
else
printf(" %d",a[i]);
}
}
测试点
注意
本题的答案是符合题目中时间复杂度与空间复杂度的要求的
本题的思路是通过增加一个 j 变量来记录需要放入数据的位置,遇到在区间内的数字, i 变量正常增加,而j变量则保持不变等待下一个不在区间内的数字