【二分查找】面试题 08.03. 魔术索引

news2024/9/25 13:25:04

面试题 08.03. 魔术索引

解题思路

在这里插入图片描述

  • 改写递归二分查找的思路
  • 首先查找mid的值是不是mid 如果是 由于有多个解,那么递归搜索左半边的空间
  • 然后如果没找到,首先搜索左半边的空间,然后搜索右半边的空间
class Solution {

    public int res = -1;

    private void search(int[] nums,int low,int high){
        if(low > high){
            return;
        }

        int mid  = low + (high  - low) / 2;

        // 如果找到 直接搜索左半边的空间
        if(nums[mid] == mid){
            res = mid;// 保存一下结果
            search(nums,low,mid - 1);// 搜索左半边的空间
        }
        else{
            // 如果没有找到  先搜索左半边 然后搜索右半边
            search(nums,low,mid - 1);
            if(res == -1 || res > high){
                // 搜索右半边
                search(nums,mid + 1,high);
            }
        }

    }

    // 递归二分查找
    public int findMagicIndex(int[] nums) {
       search(nums,0,nums.length - 1);
       return res;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis-plus案例报错

报错信息: Error creating bean with name ‘dataSource’ defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Bean instantiation via factory method failed; nested exception is org.springframework…

ELK 企业级日志分析系统(一)

ELK 一、ELK理论日志管理方案为什么要使用ELK完整日志系统基本特征ELK 简介ELK 的工作流程 二、ELK实验ELK Elasticsearch 集群部署ELK Logstash 部署(在 apche节点上操作)ELK Kiabana 部署(在 Node1 节点上操作) 一、ELK理论 日志管理方案 …

django对数据库中的表进行重新生成

删除数据库中的表删除项目中migrations包下的初始化文件 进入到manage.py目录下执行命令python manage.py makemigrations执行完上述命令之后,再执行命令python manage.py migrate就可以啦 关于详细的数据表生成见博文:https://blog.csdn.net/David_hou…

IO多路复用之select,poll,epoll

所以,我们调用 select 会把所有要管理的 socket 的 fd (文件描述符,Linux下皆为文件,简单理解就是通过 fd 能找到这个 socket)传到内核中。 此时,要遍历所有 socket,看看是否有感兴趣的事件发生。如果没有一个 socket…

Linux常见维护报错,修复MBR引导/修复grub2菜单/内核文件丢失

目录 一,修复MBR 1.模拟MBR损坏 2.重启查看系统 3.借助当前系统的光盘来进行修复 4.进入修复模式 进行修复 5.恢复正常 二,修复grub2菜单 1.出现情况 2.进入修复模式 3.进行修复grub2菜单 4.退出重启即可 三,内核文件丢失 1.进入安全模式 2.挂…

进销存软件哪个好?怎么选?(附模板)

已经把挑选进销存软件的几个注意点归纳的很到位了: 软件价格收费模式(按年付费还是一次性买断)功能要贴合本企业使用注重数据的准确性与安全性操作一定要简单要有良好的售后服务支持 在这几点的基础上,我简单说一下:…

运维开发面试题第四期(最后有数据库的题)

linux 如何查看当前linux系统的版本号(uname -a 内核 cat /proc/version版本)、系统状态《如CPU使用(top - bn),内存使用情况(vmstat,free-m)》、如何查看监控磁盘 io负载(iostat/ls…

Docker部署Mysql数据库详解

目录 1. Docker部署Mysql 1.1 Mysql容器 1.1.1 创建Mysql容器 1.1.2 进入Mysql容器并登录Mysql 1.1.3 持久化数据 1.2 远程登录Mysql 1.2.1 修改root加密方式 1.2.2 在容器启动时配置加密方式为mysql_native_password 1.3 Mysql编码 1.3.1 Mysql编码问题 1.3.2 Mysql编码…

虚函数是什么?虚函数是怎么实现的?什么时候用虚函数?

发现自己的笔记记录得四处都是,这些天统一整理汇总一下 1. 虚函数和多态的关系: 虚函数 往往 用于 实现 C的多态性 2. 什么是多态: (1)Wiki定义 : 指计算机程序运行时,相同的消息 发送给 多…

Acwing 848.有向图的拓扑序列

Acwing 848.有向图的拓扑序列 链接:848. 有向图的拓扑序列 - AcWing题库 /* 啥是拓扑排序? 首先要满足有向无环图的条件 一个有向图,如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。 一直进行上面出处理&am…

一个合格的测试人员需要具备迅速的反馈力

01 反馈指的是:在信息的传播中,接受者对传播者发出信息的反映。反馈得很重要一个属性就是时间滞延。在测试活动中,笔者经常会团队的测试人员一个问题:开发提交了一段代码后,多久能收到质量反馈?是按天&…

腾讯云轻量应用服务器性能测评一下,感觉还行吧

腾讯云轻量应用服务器性能如何?轻量服务器CPU内存带宽配置高,CPU采用什么型号主频多少?轻量应用服务器会不会比云服务器CVM性能差?腾讯云服务器网详解CPU型号主频、内存、公网带宽和系统盘存储多维对比,相对于CVM云服务…

Vue电商项目--登录与注册

登录注册静态组件 刚刚报了一个错误,找不到图片的资源 assets文件夹--放置全部组件共用静态资源 在样式当中也可以使用符号【src别名】。切记在前面加上 注册业务上 先修改原先的接口成这个按钮 然后把input框里面的数据保存到data中 注册业务下 就是点击获…

渠道归因(三)基于Shapley Value的渠道归因

渠道归因(三)基于Shapley Value的渠道归因 通过Shapley Value可以计算每个渠道的贡献权重,而且沙普利值的计算只需要参加的渠道总数,不考虑顺序,因此计算成本也较低。 传统的shapeley value import itertools from …

2.带你入门matlab数理统计常见分布的概率密度函数(matlab程序)

1.简述 计算概率分布律及密度函数值 matlab直接提供了通用的计算概率密度函数值的函数,它们是pdf 和namepdf函数,使用方式如下: Ypdf(‘name’,K,A,B)或者:namepdf (K,A,…

低代码平台之流程自动化测试

随着低代码平台的快速发展,开发人员可以便捷、快速地开发流程应用程序,由于业务流程的复杂化和业务需求的不断变化,对业务流程进行优化和改进将更加频繁,在这个过程中,就要求企业的流程测试的效率和质量需要跟上低代码…

Stable Diffusion - AWPortrait 1.1 模型与 Prompts 设置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131565908 AWPortrait 1.1 网址:https://www.liblibai.com/modelinfo/721fa2d298b262d7c08f0337ebfe58f8 介绍:AWPortrai…

java类的静态变量

java类的静态变量称为类变量,非静态变量称为实例变量。 静态变量可以在声明时初始化,也可以不在声明时初始化。 通过下面方式可以访问类的静态变量: 类内部直接访问静态变量;通过类名访问静态变量;通过实例访问静态变…

C++数据结构X篇_08_C++实现栈的顺序存储与链式存储

本篇参考C实现栈的顺序存储与链式存储整理,先搞懂结构框架,后期根据视频利用c对内容实现,也可以对c有更高的提升。 文章目录 1. 栈的顺序存储2. 栈的链式存储 栈是一种特殊的数据结构,栈中数据先进后出,且栈中数据只能…

30张图带你弄懂 二叉树、AVL、红黑树,他们之间有什么联系,AVL树和红黑树如何平衡

树(Tree)是若干个结点组成的有限集合,其中必须有一个结点是根结点,其余结点划分为若干个互不相交的集合,每一个集合还是一棵树,但被称为根的子树。注意,当树的结点个数为0时,我们称这…