问题描述:

给定数组 a = { 3,4,5,6,5,6,7,8,9,8}, 这个数组相邻元素之差都为1, 给定数字9, 它在数组中第一次出现的位置下标为8

实现思路:

方法一:“蛮力”法,顺序遍历一遍数组中每一个元素,与9比较,时间复杂度为O(n)

方法二:跳跃搜索法。首先用数组中第一个元素3与9进行比较,差值为6,由于相邻两个元素的差值为1,因此9在数组中出现最早的位置必定为:1+6 = 7 个位置(下标为6)。

如果数组是递增的,那么数组第7个元素的值才为9,如果不是递增的,那么9出现的位置肯定在第7个元素后面。

图解:

实现代码:

package JBArray;/*** 跳跃搜索法* @author Dan**/
public class FindIndex {public static int findIndex(int[] a, int t){if(a==null){return -1;}int len = a.length;int i= 0;while(i<len){if (a[i]==t) {return i;}else{i+=Math.abs(t-a[i]);}}return -1;}public static void main(String[] args) {int a[] = {3,4,5,6,5,6,7,8,9,8};System.out.println(findIndex(a, 6));}}

如何求指定数字在数组中第一次出现的位置相关推荐

  1. 查找指定数字在数组中出现的位置(有几次打印几次)

    定义一个方法,查找指定数字在数组中出现的位置(若出现多次,多次打印) 如: 数组[1232]要查找的数是2 则方法内部会打印索引值 1 ,3 数组[1232] 要查找的数是5 则方法每部会打印 &qu ...

  2. 实现输入10个数,输出这10个数的和,平均值;输出该组数中数与数的最大差值;再输入一个数,然后确定它在这个数组中第一次出现的位置,如果没有该数则输出-1,否则输出其下标

    实现输入10个数,输出这10个数的和,平均值:输出该组数中数与数的最大差值:再输入一个数,然后确定它在这个数组中第一次出现的位置,如果没有该数则输出-1,否则输出其下标 int main() //程序 ...

  3. 算法--微软面试:指定数字在数组中出现的次数

    Q题目 在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次. Answer解法 这道题要求出结果不难,但要求最有解的话,就需要花费一番功夫了.常见解法有如 ...

  4. 数字在数组中出现的次数

    目:统计一个数字k在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,输出4次 方案一:扫描数组,记录第一个出现的k和最后一个k中间有多少个,时间复杂度为O(n) 方案 ...

  5. 1. 定义方法,求出指定元素在数组中出现的次数.

    package Day05;import java.util.ArrayList;/*** 3.* c* 1. 定义方法,求出指定元素在数组中出现的次数.* 2. 定义方法,统计数组中出现次数为1的元 ...

  6. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  7. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  8. java数组个数无限_基于Java代码实现数字在数组中出现次数超过一半

    下文通过几种方法给大家介绍java数组数字出现次数,具体内容如下所示: 方法一: 数组排序,然后中间值肯定是要查找的值. 排序最小的时间复杂度(快速排序)O(NlogN),加上遍历. 方法二: 使用散 ...

  9. 编写一个程序,从10亿个数字的数组中找出100个最大的数字

    本文翻译自:Write a program to find 100 largest numbers out of an array of 1 billion numbers I recently at ...

最新文章

  1. mediarecorder添加时间戳_[Paper] 自动驾驶中相机和激光雷达的时间戳误差标定
  2. apache prefork和worker
  3. java基础之【堆、栈、方法区】结构图
  4. c语言无视数据类型字符串存储,C语言基础-第二课-数据类型与运算符(示例代码)...
  5. 登陆SharePoint站点出现service unavailable----Http错误503
  6. c#让电脑锁定、注销、关机
  7. SnapKit 源码解读(一):Extensions
  8. servlet ---- 请求对象
  9. 遇上浏览器跨域问题怎么办?
  10. 以优美方式编写JavaScript代码
  11. 宇宙第一 IDE 发布新版了
  12. 如果你没去 GDD,那可真是一种遗憾!
  13. RecyclerView异步加载图片
  14. 推荐2021年最受欢迎的15款Vue后台管理模板
  15. 香港中文大学计算机系直博面试经验
  16. 偏爱MySQL,Nifty使用4个Web Server支撑5400万个用户网站
  17. 基于Java的截图工具
  18. 网站日志流量分析系统之(日志收集)
  19. 英飞凌TC387在EB环境下的MCAL工程建立
  20. mysql主从复制、读写分离集群/etc/my.cnf配置文件

热门文章

  1. 脱贫摘帽攻关年,“拼多多们”扎进三农
  2. 提取图像的骨架(Skeleton)算法
  3. jvm中关于slot的理解
  4. webpack开发配置API代理解决跨域问题-devServer
  5. 笔记本系统摄像头打不开/识别不到/(腾讯会议/QQ语音)等第三方无法正常使用摄像头的解决办法
  6. 【年度总结】回望大学四年坎坷的2022
  7. kubernetes,service详解下
  8. android自定义发彩信实现(不调用系统发彩信界面)
  9. MANIFEST.MF属性读写
  10. 外卖小哥用计算机,阿里公布全球数学大赛答案一题可帮上千万外卖小哥提效30%...