如何快速找到排好序的数组中最先不连续的数字N
现在有一大堆自然数组成的小到大数组arr,其中会有123456910 这样就要找到6(最先不连续的数字)
举例:【12356789】 找到3
【012345678】 找到8
第一种:遍历数组判断是否差1,返回值即可 算法时间复杂度O(n)
第二种:
/*
         * 传输方向:指挥机用户机
         *指令长度:共3 bytes
         *说明:本指令为累积式应答,指令中的序号表示指挥机已经接收到了一直到该序号的所有定位记录,例如:
         *假设指挥机已接收到定位记录序号为0,1,2,3,5,6,8,则收到应答指令中的序号应为3。
        */
        public static int Sh(int le, int r, int[] arr)
        {
            if (le + 1 == r)
                return arr[le];
            int mid = (le + r) / 2;
            if (arr[mid] == mid)
                return Sh(mid, r, arr);
            if (arr[mid] != mid)
                return Sh(0, mid, arr);
            return mid;
        }
显然第二种算法时间复杂度为:O(logn)
以上!
如何快速找到排好序的数组中最先不连续的数字N的更多相关文章
- Java例题_30 在已经排好序的数组中插入值
		1 /*30 [程序 30 插入数字] 2 题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 3 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插 ... 
- 排好序的数组中,找出两数之和为m的所有组合
		public static void main(String[] args) { int[] a = {1,2,2,3,3,4,5,6}; int m = 6; normal(a, m); } //正 ... 
- 设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1)。试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法。
		设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1).试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法.要求算法在最坏情况下所用的计算时间为O(N),只用到O(1)的辅助 ... 
- jQuery Autocomplete  用户快速找到并从预设值列表中选择
		jQuery Autocomplete 插件根据用户输入值进行搜索和过滤,让用户快速找到并从预设值列表中选择.通过给 Autocomplete 字段焦点或者在其中输入字符,插件开始搜索匹配的条目并显示 ... 
- vuex中filter的使用 && 快速判断一个数是否在一个数组中
		vue中filter的使用 computed: mapState({ items: state => state.items.filter(function (value, index, arr ... 
- 【剑指offer】找出数组中任意重复的数字(不修改数组),C++实现
		原创博文,转载请注明出处! # 题目 在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的.请找出数组中任意一个重复的数字,但不能修改输入的数组.例如,如果输入长度 ... 
- 4.产生10个1-100的随机数,并放到一个数组中 	(1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 	(2)把数组中的数字放到当前文件夹的numArr.txt文件中
		package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayLis ... 
- C语言:一个数组中只有两个数字是出现一次
		//1.一个数组中只有两个数字是出现一次, //其他所有数字都出现了两次. //找出这两个数字,编程实现.a //^=单独两个数的^结果 //单独出现的两个数不同位的标记 //position: ^结 ... 
- 【剑指offer】50.数组中重复出现的数字
		50.数组中重复出现的数字 知识点:数组:Set的不可重复性 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重 ... 
随机推荐
- Java 抓取网页中的内容【持续更新】
			背景:前几天复习Java的时候看到URL类,当时就想写个小程序试试,迫于考试没有动手,今天写了下,感觉还不错 内容1. 抓取网页中的URL 知识点:Java URL+ 正则表达式 import jav ... 
- Java集合之LinkedList
			一.LinkedList概述 1.初识LinkedList 上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现. LinkedList是基于链表实现的,所以先讲解一下什么是链 ... 
- IO例子
			1.用字节读取一个文件,替换换行符,并打印 String fileName = "src/learnIO/Stream.java"; FileInputStream in = ne ... 
- 关于编写性能高效的javascript事件的技术
			如何能做出高效的web前端程序是我每次做前端开发都会不自觉去考虑的问题.几年前雅虎里牛逼的前端工程师们出了一本关于提升web前端性能的书籍,轰动了整个web开发技术界,让神秘的web前端优化问题成为了 ... 
- eclipse启动tomcat, http://localhost:8080无法访问
			原地址 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的 ... 
- 硬盘安装linux的两条命令
			kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso ro quiet splas ... 
- [Hadoop] Hadoop学习历程 [持续更新中…]
			1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ... 
- SQLServer日期函数用法
			--1.显示本月第一天 ,) ),)) --2.显示本月最后一天 ,),,))) ,,,)) --3.上个月的最后一天 ,,)) --4.本月的第一个星期一 , ) --5.本年的第一天 ,) --6 ... 
- 跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数
			目录...................................................... .00x1 可变函数 在PHP里面如果说将“函数名称”赋予字符串类型的变量.在调用这个 ... 
- Ruby中实现module继承
			module FooModule def self.included base base.extend ClassMethods end module ClassMethods def ... 
