一个数组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. python找列表list中某个数对应的索引值
  2. ios开发学习--cocos2d(cocos2d)效果源码分享--系列教程
  3. Hadoop Pig学习笔记 各种SQL在PIG中实现
  4. HDFS的Secondarynamenode工作机制
  5. c++如何获取文件时间_如何在Windows 10上获取文件或文件夹的所有权
  6. 在线普通话转粤语发音_香港最新悬疑侦探剧福尔摩师奶,粤语知识好难
  7. ubuntu 16.04 + apache2 将php7.1 切换到 php7.3
  8. jenkins启动/重启/停止命令 改端口
  9. 通过vmstat命令判断服务器瓶颈
  10. Android基础教程(奋斗之小鸟)_PDF 电子书
  11. IT外包服务内容介绍
  12. 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现...
  13. 服务器硬盘分区raid,硬盘分区高手请进!!!
  14. 复杂网络中的小世界效应是什么东西?
  15. Unicode HOWTO 中文翻译
  16. 玉雕工作室php,吴春强玉雕大师—吴春强玉雕工作室
  17. “我在公司待了 6 年,清退我却只花了 6 分钟”
  18. [内存] 谈谈所谓的要不要关闭虚拟内存
  19. 编写AIC工艺参数计算Matlab程序(疯狂踩坑)
  20. 简单Android app之 一键签到 开发日记

热门文章

  1. 插件怎么用_PPT插件怎么用?用好了10s就能给出一个动画特效,不好看不要钱
  2. matlab画图,想让子图使用不同的色标
  3. 【matlab】将几幅图片放到一个画布中
  4. oracle多表嵌套查询使用,oracle sql 多表 嵌套子查询 连接查询, join where exist i...
  5. c语言验证鼓角猜想,患者,男,43岁,交通警察。下肢酸胀、沉重6年,活动或休息后减轻。体格检:小腿外侧有蚓状团块,足靴区...
  6. snipaste安装和使用_snipaste替代品 amp; linux截图解决方案-截图、贴图工具Flameshot...
  7. idea2020显示内存占用_【解决讨论】关于macbook pro 16使用 idea2020.1风扇狂转的问题(很吵)...
  8. oracle表空间名字忘了,忘记Oracle用户名密码、及表空间对应的数据库文件地址
  9. mysql 统计 1的数量_利用MySQL统计一列中不同值的数量方法示例
  10. python中如何判断输入的是否是数字_python如何判断输入是不是数字