PTA刷題-第14題- jmu-ds-順序表區間元素刪除
7-2 jmu-ds-順序表區間元素刪除 (35分)
若一個線性表L採用順序存儲結構存儲,其中所有的元素爲整數。設計一個算法,刪除元素值在[x,y]之間的所有元素,要求算法的時間複雜度爲O(n),空間複雜度爲O(1)。
輸入格式:
三行數據,第一行是順序表的元素個數,第二行是順序表的元素,第三行是x和y。
輸出格式:
刪除元素值在[x,y]之間的所有元素後的順序表。
輸入樣例:
10
5 1 9 10 67 12 8 33 6 2
3 10
輸出樣例:
1 67 12 33 2
思路:將數字讀入數組後,一個for循環進行遍歷所有元素,當元素中的數字滿足題目所給條件時,就直接存入另一個數組中,最後打印另一個數組中的元素即可。代碼如下:
#include<stdio.h>
int main()
{
int m,i,x,y,a[100],b[100],j=0;
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
scanf("%d %d",&x,&y);
for(i=0;i<m;i++)
{
if(a[i]<x||a[i]>y)
{
b[j]=a[i];
j++;
}
}
for(i=0;i<j-1;i++)
printf("%d ",b[i]);
printf("%d",b[j-1]);
}