精华内容
下载资源
问答
  • 删除给定数中的指定元素

    千次阅读 2016-03-30 21:00:48
    最近想起了一个题:删除一个给定数中的指定元素,要删除后还是一个连续分布的数组,也就是删除过程中要做相邻移位。 曾经见到一个非常简洁的做法,不过怎么都想不起来了。自己做了一个,希望有兴趣的朋友能给出更...

      最近想起了一个题:删除一个给定数组中的指定元素,要删除后还是一个连续分布的数组,也就是删除过程中要做相邻移位。

    曾经见到一个非常简洁的做法,不过怎么都想不起来了。自己做了一个,希望有兴趣的朋友能给出更好的做法。

    以下是我自己的实现函数,对给定数组a[n],删除值为x的元素,返回值为删除后数组的长度。

    int csa(int a[],int n,int x)
    { int i=0,j=0,k=0;        //i寻找不等于x的元素,j指向新数组结尾
      while(a[i]!=x&&i<n) i++;
      if(a[i]==x) j=i;        //找到第一个x位置
      while(i<n)              //删除所有x元素
      {    while(a[i]==x) i++;
           if(i<n) a[j++]=a[i++];
      }
      k=j;                    //新数组长度
      //while(j<n) a[j++]=-1;   //多余位置统一赋0
      return k;
    }

    下面是测试用例:

    int main()
    { 
      int j = 0, n , x;
      cout<<"Input the length of your arrary: ";
      cin>>n;
      int *a=new int[n];
      cout<<"And elements: "<<endl;
      while(j<n)
         cin>>a[j++];
      cout<<"Cancel number: ";
      cin>>x;
    
      int rlength=csa(a,n,x);
      cout<<"After canceling: "<<endl;
      int i=0;
      while(a[i]!=-1&&i<n)
      { cout<<a[i++]<<" ";
      }
      cout<<endl<<"Real length of the array is "<<rlength<<endl;
      return 0;
    }

    测是结果举例:


    Input the length of your arrary: 10
    And elements:
    2 2 1 3 4 2 5 6 2 2
    Cancel number: 2
    After canceling:
    1 3 4 5 6
    New length of the array is 5

    以上算法可能不够简洁,希望有想法的朋友多多分享更简洁的做法。

    展开全文
  • es6 删除数组指定元素

    万次阅读 多人点赞 2018-12-14 14:46:14
    arr.splice(arr.findIndex(item =&gt; item.id === id), 1) //item 只是参数可以写成 i 或者 v 都可以 , ...//=== 后面的id是你想要删除元素的id号,同理,如果你数组里面写的是num,那这里...
    arr.splice(arr.findIndex(item => item.id === id), 1)
    //item 只是参数可以写成 i 或者 v 都可以 , 
    //后面的额id是数组的id,是不能随便写的,如果你数组里面写的是id,这里就写id,如果数组里面写的是num,那这里就写num , 
    //=== 后面的id是你想要删除的元素的id号,同理,如果你数组里面写的是num,那这里就是num号 , 
    //1是你要删除1个元素的意思

     第一种 splice(index,num); 

      index代表的是数组元素的下标位置,num代表的是删除的个数  

      findIndex();   是找到某元素的下标的位置


    如图,这个数组里面有三个元素,现在要删掉这个id是24的元素,那我们代码就应该这么写

    arr.splice(arr.findIndex(item => item.id === 24), 1)

    打印一下发现,id为24的元素就删掉啦 !

    第二种 arr.filter()

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

    注意: filter() 不会对空数组进行检测。

    注意: filter() 不会改变原始数组。

    array.filter(function(currentValue,index,arr), thisValue)

    //这样就删除啦
    arr = arr.filter((num,index)=>{return index !== val})

    展开全文
  • 例:有数testArr= ["b", "b", "a", "b", "a"],需要把数组的"b"删掉。 错误的写法: var testArr = ["b", "b", "a", "b", "a"]; //替换掉数组里的b for (var i = 0; i ; i++) { //如果是b,则从数组...

    例:有数组testArr= ["b", "b", "a", "b", "a"],需要把数组内的"b"删掉。

    错误的写法:

    <script type="text/javascript">
    	var testArr = ["b", "b", "a", "b", "a"];
    	//替换掉数组里的b
    	for (var i = 0; i < testArr.length; i++) {
    		//如果是b,则从数组删掉
    		if (testArr[i] == "b")
    			testArr.splice(i, 1)
    	}
    	console.log(testArr);//testArr为 ["b","a","a"];
    </script>
    


    /*错误原因:在i=0时删掉了第一个"b", testArr变成了["b","a","b","a"];
      继续走循环,i=1时 testArr length为4,testArr[1]已经不是最初的testArr[1]了
      所以漏掉了第二个"b".*/

    解决方法:

    1. 使用i--,初始值为length-1,这样删除为数组最后开始删除(或通过验证),不影响继续执行的结果。

    <script type="text/javascript">
    	var testArr = ["b", "b", "a", "b", "a"];
    	//替换掉数组里的b
    	for (var i = testArr.length-1; i >=0; i--) {
    		//如果是b,则从数组删掉
    		if (testArr[i] === "b")
    			testArr.splice(i, 1)
    	}
    	console.log(testArr);// testArr=["a","a"]
    </script>

    2.每次成功执行删除,则把当前的i减1。因为每删除一个元素,后边的依次靠前一个位置。所以把i-1可保证每个元素都不漏掉。

    <script type="text/javascript">
    	var testArr = ["b", "b", "a", "b", "a"];
    	//替换掉数组里的b
    	for (var i =0; i < testArr.length; i++) {
    		//如果是b,则从数组删掉
    		if (testArr[i] === "b"){
    			testArr.splice(i, 1)
    			//因为当前元素被删,后边的元素全部往前挪1个位置,i-1保证不漏掉数据
    			i-=1;
    		}
    	}
    	console.log(testArr);// testArr=["a","a"]
    </script>

    3. 使用一个新的数组存放筛选的值。

    <script type="text/javascript">
    	var testArr = ["b", "b", "a", "b", "a"];
    	var newArr = [];
    	for (var i = 0; i < testArr.length; i++) {
    		if (testArr[i] !== "b") {
    			newArr.push(testArr[i]);
    		}
    	}
    	console.log(newArr);//["a","a"]
    </script>

    该方法还可以Array.prototype.filter(ES5支持)实现

    <script type="text/javascript">
    	var testArr = ["b", "b", "a", "b", "a"];
    	var newArr = testArr.filter(function(item){
    		  return item != "b";
    		});
    	console.log(newArr);//newArr=["a","a"]
    </script>

    关于ES5 Array.filter,可以参考http://lzw.me/pages/ecmascript/#362

     

    转载于:https://my.oschina.net/CrazyBoy1024/blog/1589983

    展开全文
  • 1116: 删除元素

    千次阅读 2017-11-06 16:15:57
    1116: 删除元素 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 8407 Solved: 3345 SubmitStatusWeb ...输入一个递增有序的整型数组A有n个元素,删除... 定义如下两个函数分别实现删除元素操作和数输出操

    1116: 删除元素

    Time Limit: 1 Sec   Memory Limit: 128 MB
    Submit: 8407   Solved: 3345

    Submit Status Web Board

    Description

    输入一个递增有序的整型数组A有n个元素,删除下标为i的元素,使其仍保持连续有序。注意,有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。

    void del(int a[], int n, int i);  /*删除数组a中下标为i的元素*/

    void PrintArr(int a[], int n); /*输出数组a的前n个元素*/



    Input

    输入分三行,第一行是一个整数n(n<10),第二行是n个整数,第三行是要删除元素的下标i,i>=0。

    Output

    输出删除下标为i的元素后的数组元素,数据之间用空格隔开。

    Sample Input

    61 3 5 7 9 113

    Sample Output

    1 3 5 9 11

    HINT

    请注意当数组只有一个元素,并且被删除之后,则数组为空,此时应该是没有任何输出。常见错误是在此种情况下输出了第一个元素或输出了回车。

    Source

    #include<stdio.h>
    int main()
    {
        int a[10],n,i,b,l;
        scanf("%d\n",&n);
        for(i=0; i<n; i++)
        {
            scanf("%d\n",&a[i]);
        }
        scanf("%d",&b);
        if(n==0)
            printf("");
        else
        {
            for(i=0; i<n; i++)
            {
                if(i==b)
                    continue;
                if(i!=0)
                    printf(" %d",a[i]);
                else
                    printf("%d",a[i]);
            }
        }
        return 0;
    }
    

    展开全文
  • NSMutableArray 删除元素

    千次阅读 2015-06-12 15:53:17
    在做和可变数相关的编程题的时候,我们会遇到一个这样的问题:在对数遍历时删除数组元素。 有些人一看,很简单嘛,forin 遍历就解决了,我们来看一下用forin解决这个问题的结果 我们先假设一个场景,一个...
  • php 数组 添加元素、删除元素

    千次阅读 2018-07-06 18:10:56
    原文地址:http://blog.163.com/lishilin_468@126/blog/static/16290113820124411231846/ 拆分数组 PHP数组添加一个元素
  • 项目中用spring data mongodb,当一个类中有一个list集合(即数组元素)时,删除和修改这个元素的数据困扰了我好久,各种百度都搜不到(真心觉得百度很垃圾),后来在谷歌搜到了答案,记录如下:实体类如下:package...
  • C# 数组删除元素

    千次阅读 2019-02-13 16:13:56
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections;...namespace _1207_数组删除元素 { class Program { ...
  • 使用splice函数对数中的元素进行删除时的注意事项 删除值为c的元素: var arr = new Array(); arr[0] = 'a'; arr[1] = 'b'; arr[2] = 'c'; arr[3] = 'c'; arr[4] = 'e'; for(var i=0; i  if(arr[i] ==
  • 数组中删除指定元素: 1. 普通数组例如:var arr = [1,2,3,4,1]; _.pull( arr,1 ); 结果: [2,3,4] 2.删除数组中的指定数组: var arr = [1,2,3,4,1]; _.pullAll(arr, [1,2,3] ); 输出结果:[4] 相关详情请...
  • Matlab 删除重复元素

    万次阅读 2018-10-18 16:01:52
    Matlab 删除重复元素删除重复行 函数:unique b = unique(A) b = unique(A,'rows') [b,m,n] = unique(...) 描述 1、b = unique(A) 返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。A可以...
  • 如代码所示: QPainterPath Path; Path.lineTo(MoveMouse.pos());...为橡皮擦操作时,我MouseMove.pos()在路径,我就把某个元素删除,从而实现橡皮擦功能,该怎么做,QPainterPath貌似没有直接删除元素的方法
  • JS中split用法和数元素删除

    千次阅读 2015-07-15 17:19:16
    JS中split用法和数元素删除 JS中split用法 "javascript"> function spli(){ datastr="2,2,3,5,6,6"; var str= new Array(); str=datastr.split(","); for (i=0;i { do
  • NSMutableArray遍历删除元素

    千次阅读 2017-02-03 20:29:56
    在做和可变数相关的编程题的时候,我们会遇到一个这样的问题:在对数遍历时删除数组元素。 有些人一看,很简单嘛,forin 遍历就解决了,我们来看一下用forin解决这个问题的结果 我们先假设一个场景,一个数组...
  • 项目中用spring data mongodb,当一个类中有一个list集合(即数组元素)时,删除和修改这个元素的数据困扰了我好久,各种百度都搜不到(真心觉得百度很垃圾),后来在谷歌搜到了答案,记录如下: 实体类如下: ...
  • 在学习Objective-C的过程中,我们会学到NSMutableArray这个类,也就是可变数组。在做和可变数相关的编程题的时候,我们会遇到一个这样的问题:在对数遍历时删除数组元素
  • 微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文: ...view class="big-logos">...imagebindtap="addimg"src='../../../image/s.png'>...blockwx:for="{{img_arr}}"wx:key="inde...
  • JAVA中的数组插入与删除指定元素

    万次阅读 热门讨论 2017-08-02 19:28:30
    今天学了Java的数组,写了数组的插入和删除,本人小白,写给不会的小白看,大神请忽略,有错请大家指出来; /** 给数组指定位置数组的插入 */ import java.util.*; public class ArrayInsert{ public static ...
  • go 数组,切片删除元素

    千次阅读 2020-06-18 18:57:48
    go 数组,切片删除元素 删除开头的元素可以直接移动数据指针: a = []int{1, 2, 3} a = a[1:] // 删除开头1个元素 a = a[N:] // 删除开头N个元素 也可以不移动数据指针,但是将后面的数据向开头移动,可以用 ...
  • iOS遍历数组的同时删除元素

    万次阅读 2016-11-11 23:23:28
    我们在遍历可变数时,最好不要做删除数组中元素的操作。 因为删除操作可能会引起数组容量的变化,导致数组越界等问题。 以前在使用for循环遍历的时候遇到过这个问题。 当时的做法是使用...
  • java数组删除数组元素When we create an array in Java, we specify its data type and size. This is used by JVM to allocates the necessary memory for array elements. There are no specific methods to ...
  • ZZULIOJ.1116: 删除元素

    千次阅读 2018-11-18 12:30:19
    定义如下两个函数分别实现删除元素操作和数输出操作。 void del(int a[], int n, int i); /删除数组a中下标为i的元素/ void PrintArr(int a[], int n); /输出数组a的前n个元素/ 输入 输入分三行,...
  • java数组如何删除元素

    千次阅读 2019-08-28 14:59:45
    今天,阿桂问我,数组怎么删除元素? 什么?你又钻什么牛角尖,好好的list不用。 一物不知,深以为耻。 好吧,我也钻一下。上代码。 public class Arraytest { public static void main(String[] args) { ...
  • R向量如何快速删除元素

    万次阅读 多人点赞 2017-02-27 13:49:41
    做项目碰到一个实际问题,把数据转化成向量后需要删去其中一部分等于具体数值的元素。 e.g. a=[0,0,1,2,0,3] 想删去其中数值为0的元素使得 a=[1,2,3] > a (0,0,1,2,0,3) > b = which(a==0) #1 > b [1] 1 2 5 > a =...
  • 假设有一数组(字符数组,整数数组等),需要将里面重复的元素删除,一种比较方便的方法就是利用STL::vector,vector中定义了许多的成员函数,通过这一些成员函数的搭配可以方便的实现很多任务。
  • Python中numpy数组如何添加和删除元素

    千次阅读 2020-12-29 14:09:55
    本篇文章从append、 insert、 delete三个函数出发,讲解在numpy数组中如何添加和删除元素。 在 numpy中,经常需要对数组元素进行添加和删除操作,如使用 append() 函数和 insert() 函数为数添加元素,或者使用 ...
  • Java数组插入或删除元素

    万次阅读 多人点赞 2018-04-09 00:44:21
    Java数组插入或删除元素 **练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机) 在其数组的最后追加一个1-50随机数值** public class ArrayInsert1{ public static void main(String[] args){ ...
  • zzuli OJ 1116: 删除元素

    千次阅读 2015-11-06 08:33:55
    Description ... 定义如下两个函数分别实现删除元素操作和数输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*/ void PrintArr(int a[], int n); /*输出数组a的前n个元素*/

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484,899
精华内容 193,959
关键字:

组内删除元素