在数组r[n]中删除所有元素值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)

如题。

思路:用一个新的数组来记录原数组中不为X的元素:边扫描边统计不为X元素的个数,并将不等于X的元素依次复制到新的数组中去,最后统计的结果则为删除后新数组的长度。

#include
#include
using namespace std;
void delete_x(int *a,int *b,int len);
static int x=7;
int main(){
    int a[]={7,7,1,2,3,4,5},len,*newarry;
    len=sizeof(a)/sizeof(a[0]);
    newarry=(int *)malloc(len*sizeof(int));//动态开辟一个新数组
    delete_x(a,newarry,len);
    return 0;
}
void delete_x(int *a,int *b,int len){
    int co=0;
    for(int i=0,j=0;i

 

你可能感兴趣的:(算法)