红桃J

用心写好每行完美的代码,远比写一堆更有价值

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

代码:

#include<iostream>

using namespace std;


int removeElement(int A[], int n, int elem) {
    int t = 0;
    for (int i = 0; i < n; i++){
        if (A[i] == elem){
            t++;
        }
        else
        {
            A[i - t] = A[i];
        }
    }
    return n - t;
}

int main(){
    int n, A[] = { 2, 2, 3, 4,2, 5, 6 };
    n = removeElement(A, 7, 2);
    cout <<n<<endl;
    for (int i = 0; i < n; i++){
        cout << A[i] << endl;
    }
}

优秀代码:

1 int removeElement(int A[], int n, int elem) {
2     int begin=0;
3     for(int i=0;i<n;i++) if(A[i]!=elem) A[begin++]=A[i];
4     return begin;
5 }

不同的角度,以后尝试这种角度考虑问题!

posted on 2015-04-21 19:57  红桃J  阅读(117)  评论(0编辑  收藏  举报