时间复杂度O(n),空间复杂度O(1)。

简单的问题两种不同的思路。

代码:

#include <stdio.h>
#define MAX 100
struct sqlist{
    int data[MAX];
    int length;
}s;
void input(sqlist *s) {
    printf("请输入元素个数:");
    scanf("%d",&s -> length);
    printf("请输入%d个元素:",s -> length);
    for(int i = 0;i < s -> length;i ++) {
        scanf("%d",&s -> data[i]);
    }
}
void print(sqlist s) {
    printf("%d\n",s.length);
    for(int i = 0;i < s.length;i ++) {
        printf("%d ",s.data[i]);
    }
    putchar('\n');
}
void del_1(sqlist *s,int x) {//记录不等于x的个数
    int k = 0;
    for(int i = 0;i < s -> length;i ++) {
        if(s -> data[i] != x) s -> data[k ++] = s -> data[i];
    }
    s -> length = k;
}
void del_2(sqlist *s,int x) {//记录等于x的个数
    int k = 0;
    for(int i = 0;i < s -> length;i ++) {
        if(s -> data[i] == x) k ++;
        else s -> data[i - k] = s -> data[i];
    }
    s -> length -= k;
}
int main() {
    input(&s);
    int x;
    printf("请输入x:");
    scanf("%d",&x);
    del_1(&s,x);
    print(s);
    return 0;
}

 

相关文章:

  • 2021-04-29
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
  • 2021-06-17
  • 2021-07-08
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案