
/*长度为n,删除值为x的数据元素,要求时间复杂度为O(n),空间复杂度O(1)。分析:用k记录删除元素个个数,一边遍历顺序表一边统计k,并将不等于x的元素向前挪k个位置*/#include <stdio.h>void deleteX(int *arr,int n,int len) {int k = 0,i=0;//进行计数while (i<len) {if (*(arr+i)==n) {k++;}else {*(arr +i- k) = *(arr + i);}i++;}for (int i = 0; i < len-k; i++) {printf("%d ", *(arr + i));}}int main() {int arr[] = {1,2,3,2,4,2};//也可以手动赋值的int len = sizeof(arr) / sizeof(int);deleteX(arr,2,len);//要删除的元素也可以有用户输入return 0;}
