一个数组arr0,长度任意,删除其中某个元素后得到数组arr,求删除的元素

最容易想到的方法:顺序查找,两个循环

function findItem1(arr0,arr){    /*         arr0:原始数组         arr: 随机去除某一个元素后的数组     */     if(!arr0||arr0.length<1||arr0.length-arr.length!=1) return 'error';     if(arr0.length==1) return arr0[0];     for(var i=0,l=arr0.length;i<l;i++){         for(var m=0,n=arr.length;m<n&&arr0[i]!==arr[m];m++){             if(m==n-1) return arr0[i];         }     } }

最容易想到的方法一般都是效率最低的方法,发了半天呆又想到了二分查找

function findItem2(arr0,arr){    /*         arr0:原始数组         arr: 随机去除某一个元素后的数组     */     if(!arr0||!arr||arr0.length<1||arr0.length-arr.length!=1) return 'error';     if(arr0.length==1) return arr0[0];     function compare(ascArr1,ascArr2){//ascArr1.length-ascArr2.length==1         var ci = Math.floor(ascArr1.length/2);         if(ascArr1[ci]!==ascArr2[ci]){             if(ci==0||ascArr1[ci-1]==ascArr2[ci-1]) return ascArr1[ci];             else return compare(ascArr1.slice(0,ci),ascArr2.slice(0,ci));         }else{             if(ci==ascArr2.length-1) return ascArr1[ci+1];             else return compare(ascArr1.slice(ci+1),ascArr2.slice(ci+1));         }     }     return compare(arr0,arr); }

暂时只想到这两种方法,应该还有更高效的方法,想到了再补充。查看本文demo

查找数组中被删除的一个元素相关推荐

  1. python查找数组中出现次数最多的元素

    方法1-np.argmax(np.bincount()) 看一个例子 array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(array)) print(np. ...

  2. 利用堆排序查找数组中第K小的元素方法

    先从数组A[ ]中取前k个元素建立大根堆,然后再遍历剩下的n-k个元素, 如果大于或者等于堆顶,则舍弃: 如果小于堆顶,则将其与堆顶替换,并将换下来的堆顶舍弃,然后重新向下调整为大根堆,最后堆顶即为所 ...

  3. 查找数组中第二个最小元素

    查找数组中最小的两个元素的过程: 第一种情况: 如果数组的数据是偶数个N: 1.首先假设最小值和次最小值是最前面的两个数 min1=p[0]; min2=p[1]; 2.进行循环,进入下一组的两个数中 ...

  4. c语言在数组中找最小数,C语言 查找数组中最大最小元素

    //findMax.c /** 查找数组中最大,最小的元素. */ #include #include #include void main() { int array[10];// int Y=10 ...

  5. python统计数组中出现次数最多的元素

    python查找数组中出现次数最多的元素 方法1-np.argmax(np.bincount()) array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(ar ...

  6. php如何去除数组的最后一个元素,如何从PHP中的数组中删除最后一个元素?

    要从数组中删除最后一个元素或值, 请使用array_pop()函数.此函数返回数组中最后一个删除的元素, 如果数组为空或不是数组, 则返回NULL.从数组中删除最后一个元素后, 将修改数组, 并且仅当 ...

  7. php 查找数组相同元素,查找数组中重复的元素

    本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...

  8. 【Java】 查找数组中指定元素之 顺序查找 与 二分查找

    今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...

  9. 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居

    在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...

最新文章

  1. 004_URL 路由 - 对磁盘文件的请求进行路由
  2. SSH 远程连接原理及故障排错详解
  3. 买衣服送粉丝,人气美女出新招
  4. ubuntu install node npm bower
  5. picpick尺子像素大小精度不够准确_精度与分辨率是一回事吗
  6. C#网络编程(订立协议和发送文件) - Part.4
  7. WPF企业内训全程实录(下)
  8. Java-异常03 自定义异常
  9. 2018-2019-1 20165227 20165228 20165237 实验五 通讯协议设计
  10. Linux---信号及其使用简单讲解
  11. 理解String不可变
  12. python控制台编写_Python:为控制台prin编写unittest
  13. 诺基亚安卓手机_宁可不做手机?也不用安卓系统!诺基亚:真香啊
  14. python删除图片文字_ps去掉图片上的文字的6种方法
  15. 当update语句提交后,数据库做了哪些操作?
  16. ce修改植物大战僵尸之修改阳光值
  17. android优化最强软件,手机提速谁最行?十款安卓优化软件比拼
  18. 大学生创新创业项目管理系统
  19. Java基础学习(6)---Java面向对象
  20. window设置minio自启动时候*报错某些服务未由其他服务使用时将自动停止

热门文章

  1. b/s模式的服务器性能监控系统,基于B/S模式的PC监控系统及方法
  2. (二)Linux 权限
  3. python叮当猫代码_详细介绍一个利用html+css实现叮当猫的实例代码
  4. 1、css引入的方式有哪些?_低氮燃烧技术都有哪些?
  5. linux c 获取硬盘使用率,Linux通过c得到硬盘使用情况
  6. Lesson 29 SVD decomposition
  7. qt-opensource-windows-x86-vs2010-4.8.6 + qt-creator-windows-opensource-2.8.0
  8. vs2008下配置OGREV1.7源码
  9. c语言验证鼓角猜想,患者,男,43岁,交通警察。下肢酸胀、沉重6年,活动或休息后减轻。体格检:小腿外侧有蚓状团块,足靴区...
  10. java map扩容机制_java中ConcurrentHashMap的扩容机制问题