面试题 08.03. 魔术索引

面试题 08.03. 魔术索引

难度:简单
题目描述
在这里插入图片描述

解题思路

1、暴力法

如果不想复杂的话就很简单嘛

public int findMagicIndex(int[] nums) {
        for(int i = 0;i < nums.length;i++){
            if(nums[i] == i){
                return i;
            }
        }
        return -1;
    }

在这里插入图片描述

2、官方题解二分

看起来也不太像是二分的样子啊

		public int findMagicIndex(int[] nums) {		 
			 return findHelper(nums, 0, nums.length-1);
		}
		 public int findHelper(int[] nums,int left,int right) {
			 if(left > right) {
				 return -1;
			 }
			 int mid = left + (right-left)/2;
			 int leftAnswer = findHelper(nums, left, mid - 1);
			 //如果左边找到了,就返回结果
		     if (leftAnswer != -1) {
		          return leftAnswer;
		     } else if (nums[mid] == mid) {
		           return mid;
		     }
		     return findHelper(nums, mid + 1, right);

		 }

在这里插入图片描述

3、间隔跳跃查找

这种好像只能在升序的时候有用,但是测试用例里也没降序的用例,所以能过

//间隔跳跃查找
public int findMagicIndex1(int[] nums) {
        for(int i=0;i<nums.length; ){
            if(nums[i]==i)
                return i;
            i=Math.max(nums[i],i+1);
        }
        return -1;
    }

比如[2, 2, 2, 4, 5]
下标0的地方是2,那么直接去下标为2的地方找,因为中间不可能有满足条件的了
在这里插入图片描述

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值