码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Remove Element删除元素

时间:2014-11-22 15:50:17      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   sp   for   on   div   log   

 1 class Solution {
 2 public:
 3 int removeElement(int A[], int n, int elem) {
 4     int *p=A,*e=&A[n-1];
 5     int i,num=n;
 6     for(i=0;i<n;i++){    //一共要对比n次,不能用n来处理,会影响循环
 7         if(*p==elem){
 8             if(p==e)    //已经处理到最后一个相同,只需总数减1
 9                 num--;
10             else{
11                 *p=*e;
12                 e--;
13                 num--;
14             }
15         }
16         else
17             p++;
18     }
19     return num;
20 }
21 };

题意:给一个整型数组(无序),删除规定的某一元素,返回剩下的元素个数。

思路:两个指针,一个从头扫,一个从尾扫,一共要对比n次,因为有n个元素。从头扫到该删除的元素就用后面扫起的元素代替掉。

注意:数组是无序的,你可以随意将顺序更改,只要得到一个结果:规定删除的元素值不能出现新数组中即可。利用此特点,不用每次扫到一个要删除的元素就将该元素之后的所有元素往前移动了。

LeetCode Remove Element删除元素

标签:style   blog   io   color   sp   for   on   div   log   

原文地址:http://www.cnblogs.com/xcw0754/p/4115134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!