zoukankan      html  css  js  c++  java
  • 数据结构之,线性表去除等于x的元素

    问题看起来很简单,但是这里有个限制,就是算法的时间复杂度位O(n),空间复杂度为O(1),下面上代码

    #include <iostream>
    #include <string.h>
    #include <time.h>
    using namespace std;
    
    #define n 100
    
    int main()
    {
        char SZ[n];
        char del;
        memset(SZ,'',n);
        cin>>SZ;
        cin>>del;
        clock_t start,end;//用于计时
        start = clock()    ;
    
        int length = strlen(SZ);//获取当前字符串长度
        int count = 0;//计数,当前非del字符的个数
        for (int i = 0;i < length;i++)
        {
            if (SZ[i] != del)
            {
                SZ[count] = SZ[i];
                count++;
            }
        }
        length = count;//字符串新的长度
    
        for (int i = 0;i < length;i++)
           cout<<SZ[i];
        end = clock();
        cout<<"
    总共花费了"<<(end - start)<<endl;
        return 0;
    }

    中间的count设置的很巧妙,我的思维一味的拘束在数组的遍历和模拟删除上面,没有想到这个很直接而且效率也很高的方法啊!!

    运行结果:

  • 相关阅读:
    Zigbee安全基础篇Part.3
    Zigbee安全基础篇Part.2
    Zigbee安全基础篇Part.1
    mini2440 Nor Flash工作原理分析
    fuck the browser mode
    valgrind使用
    windows下自己常用的几个bat
    二叉树可视化
    npm的使用
    tp5的phpword使用
  • 原文地址:https://www.cnblogs.com/color-my-life/p/3307502.html
Copyright © 2011-2022 走看看