数组中删除元素

原创 2013年12月05日 22:38:12

Given an array and a value, remove all instances of that value in place and return the new length.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

分析题意:删除value  不需要保证元素的顺序不变   只需要返回新的数组长度 而不管超出该长度的数据是什么


显然,这是一个可以利用快速排序的思想来解决的问题。在快排中,是利用pivot 将数组分为 “大于pivot”和“小于pivot”的部分。在这里,我们的分割元素是要删除的元素elem,且利用elem将数组分为 “不等于pivot” 和 “等于pivot” 两部分,因此可以很容易地得到下面的代码:

    int removeElement(int A[], int n, int elem) {
        int i = 0,j = 0;
        for(j = 0; j < n; j++)
        {
            if(A[j] != elem)
                swap(A[j],A[i++]);
        }
        return i;
    }

诚然,我刚刚拿到这个题目,用的是两个指针left和right,如果left为elem,则移动right,使得到达一个不为elem的元素,与left交换,知道left > right。很自然的思想,可是调试老是通不过。 无奈,放弃之。


一维数组与二维数组深度解剖

祥细分析一维数组与多维数组 1、首先我们来看一下一维数组 一维数组的定义:类型名 数组名[元素个数]     我们知道 编译器会在内存中会根据元素个数和元素数据类型分配一段连续的内存...
  • sinat_30438007
  • sinat_30438007
  • 2015年12月16日 01:04
  • 353

使用slice()简单封装实现将数组分割为几个等长度的子数组

使用数组的时候,我们有时候希望将一个数组分成几个相同长度的子数组,使用slice()方法可以返回一个子数组,所以我们可以将slice()再进行封装一下,以实现上面的功能。...
  • fxss5201
  • fxss5201
  • 2017年03月28日 21:34
  • 3366

go 数组和数组切片比较

一、数组  与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列。 (1)数组的创建。 数组有3种创建方式:[length]Type 、[N]Type{value1, value...
  • wenlovingliu
  • wenlovingliu
  • 2015年05月21日 10:55
  • 4059

数组和集合区别

一、数组声明了它容纳的元素的类型,而集合不声明。        二、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合...
  • qq_27088383
  • qq_27088383
  • 2016年01月06日 14:39
  • 20360

类数组转数组方法详解

类数组转数组:Array.prototype.slice.call(arguments)方法详解: 我们知道,Array.prototype.slice.call(arguments)能将具有leng...
  • u013084331
  • u013084331
  • 2016年04月21日 16:52
  • 1501

python中数组的使用

转自:http://blog.163.com/jackylau_v/blog/static/17575404020118312853830/ python数组的使用 2010-07-28 ...
  • leo115
  • leo115
  • 2013年01月29日 00:43
  • 22669

指针数组,数组指针与二维数组剖析

int *p[3]与int (*p)[3]的区别 *p[3]这个是一个指针数组,它所代表的意思是数组中的每一个元素都是一个指针变量,而(*p)[3],p是一个指针变量,表示指向一个含有3个整型元素的一...
  • qiumingjian
  • qiumingjian
  • 2015年05月06日 17:24
  • 3379

指针数组与数组指针详解

指针数组与数组指针详解1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系...
  • men_wen
  • men_wen
  • 2016年09月28日 21:21
  • 9882

易语言-数组的使用

.版本 2 .支持库 spec .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 数组1, 文本型, , "0" .局部变量 x, 整数型 .局部变量 ...
  • cyuyan112233
  • cyuyan112233
  • 2013年09月06日 10:25
  • 8878

数组和链表的区别

数组结构:        数组结构在通过索引进行查询数据时效率比较高,而对于数组插入和删除操作,则效率会比较低,在第一个位置进行插入数据,其余数据就需要依次向后移动,而第一个数据进行删除,则需要所有数...
  • baoq_v5_java
  • baoq_v5_java
  • 2015年04月10日 17:31
  • 19443
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组中删除元素
举报原因:
原因补充:

(最多只允许输入30个字)