查找数组中被删除的一个元素
一个数组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(){ for(
var
i=0,l=arr0.length;i<l;i++){
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
查找数组中被删除的一个元素相关推荐
- python查找数组中出现次数最多的元素
方法1-np.argmax(np.bincount()) 看一个例子 array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(array)) print(np. ...
- 利用堆排序查找数组中第K小的元素方法
先从数组A[ ]中取前k个元素建立大根堆,然后再遍历剩下的n-k个元素, 如果大于或者等于堆顶,则舍弃: 如果小于堆顶,则将其与堆顶替换,并将换下来的堆顶舍弃,然后重新向下调整为大根堆,最后堆顶即为所 ...
- 查找数组中第二个最小元素
查找数组中最小的两个元素的过程: 第一种情况: 如果数组的数据是偶数个N: 1.首先假设最小值和次最小值是最前面的两个数 min1=p[0]; min2=p[1]; 2.进行循环,进入下一组的两个数中 ...
- c语言在数组中找最小数,C语言 查找数组中最大最小元素
//findMax.c /** 查找数组中最大,最小的元素. */ #include #include #include void main() { int array[10];// int Y=10 ...
- python统计数组中出现次数最多的元素
python查找数组中出现次数最多的元素 方法1-np.argmax(np.bincount()) array = [0,1,2,2,3,4,4,4,5,6] print(np.bincount(ar ...
- php如何去除数组的最后一个元素,如何从PHP中的数组中删除最后一个元素?
要从数组中删除最后一个元素或值, 请使用array_pop()函数.此函数返回数组中最后一个删除的元素, 如果数组为空或不是数组, 则返回NULL.从数组中删除最后一个元素后, 将修改数组, 并且仅当 ...
- php 查找数组相同元素,查找数组中重复的元素
本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...
- 【Java】 查找数组中指定元素之 顺序查找 与 二分查找
今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...
- 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居
在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...
最新文章
- 004_URL 路由 - 对磁盘文件的请求进行路由
- SSH 远程连接原理及故障排错详解
- 买衣服送粉丝,人气美女出新招
- ubuntu install node npm bower
- picpick尺子像素大小精度不够准确_精度与分辨率是一回事吗
- C#网络编程(订立协议和发送文件) - Part.4
- WPF企业内训全程实录(下)
- Java-异常03 自定义异常
- 2018-2019-1 20165227 20165228 20165237 实验五 通讯协议设计
- Linux---信号及其使用简单讲解
- 理解String不可变
- python控制台编写_Python:为控制台prin编写unittest
- 诺基亚安卓手机_宁可不做手机?也不用安卓系统!诺基亚:真香啊
- python删除图片文字_ps去掉图片上的文字的6种方法
- 当update语句提交后,数据库做了哪些操作?
- ce修改植物大战僵尸之修改阳光值
- android优化最强软件,手机提速谁最行?十款安卓优化软件比拼
- 大学生创新创业项目管理系统
- Java基础学习(6)---Java面向对象
- window设置minio自启动时候*报错某些服务未由其他服务使用时将自动停止
热门文章
- b/s模式的服务器性能监控系统,基于B/S模式的PC监控系统及方法
- (二)Linux 权限
- python叮当猫代码_详细介绍一个利用html+css实现叮当猫的实例代码
- 1、css引入的方式有哪些?_低氮燃烧技术都有哪些?
- linux c 获取硬盘使用率,Linux通过c得到硬盘使用情况
- Lesson 29 SVD decomposition
- qt-opensource-windows-x86-vs2010-4.8.6 + qt-creator-windows-opensource-2.8.0
- vs2008下配置OGREV1.7源码
- c语言验证鼓角猜想,患者,男,43岁,交通警察。下肢酸胀、沉重6年,活动或休息后减轻。体格检:小腿外侧有蚓状团块,足靴区...
- java map扩容机制_java中ConcurrentHashMap的扩容机制问题