leetcode面试题 08.03. 魔术索引(二分)
2020-07-31 19:47
706 查看
魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。
示例1:
输入:nums = [0, 2, 3, 4, 5]
输出:0
说明: 0下标的元素为0
代码
class Solution { public int findMagicIndex(int[] nums) { return find(nums,0,nums.length-1); } public int find(int[] nums,int left,int right) { if(left>right) return -1;//递归边界 int mid=left+(right-left)/2;//中点 int l=find(nums,left,mid-1);//找左边 if(l!=-1) return l; else if(nums[mid]==mid)//找到了 return mid; else return find(nums, mid+1, right);//找右边 } }
相关文章推荐
- Leetcode-山脉数组的峰顶索引-二分查找
- leetcode 面试题32-III 从上到下打印二叉树
- leetcode 剑指offer面试题06,从头到尾打印链表
- 二叉树面试题(2)(leetcode)
- leetcode--面试题50. 第一个只出现一次的字符
- leetcode 二分查找算法细节详解
- 树状数组 ( Binary Indexed Tree,BIT,二分索引树 )
- LeetCode 面试题66. 构建乘积数组
- leetcode_33_34_二分搜素
- LeetCode上一道经典的面试题-O(1)实现LRU Cache
- leetcode 35. Search Insert Position (二分)
- leetcode 154. Find Minimum in Rotated Sorted Array II 旋转数组(重复)+二分查找
- leetcode微软,亚马逊,雅虎面试题206. Reverse Linked List的java实现
- 10 继承 重构 多继承 Mixin类 魔术方法 反射 二分查找
- 高频算法面试题(数组)leetcode 169. 求众数
- 字符串--java面试题, 首个重复字符串,二分查找
- 网络流24题 魔术球问题(弱化?)(二分图解)
- leetcode-二分查找:Search a 2D Matrix
- LeetCode @ Search Insert Position 二分查找
- LeetCode二分查找总结