39.数组中数值和下标相等的元素
生活随笔
收集整理的這篇文章主要介紹了
39.数组中数值和下标相等的元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
??假設一個單調遞增的數組里的每個元素都是整數且是唯一的,請編程實現一個函數,找出數組中任意一個數值等于其下標的元素,例如,在數組{-3,-1,1,3,5}中數字3和它的下標相同。
思路分析:
??由于是排序的且遞增的數組的查找問題,那么我們考慮使用二叉查找法。假設我們某一步抵達了某個數字,且這個數字等于其在數組中的下標,那么我們就找到了答案。如果這個數字不等于其下標,那么我們判斷,如果這個數字大于其下標,根據遞增數組的性質,這個數字后面的數都大于其相應的下標,所以下一階段我們在左段進行查找。如果這個數字小于其坐標,那么根據遞增數組的性質,這個數字前面的數都小于其對應的下標,所以下一階段在后半段進行查找。
代碼:
public class Test{public int GetNumberSameAsIndex(int[]nums){if(nums.length==0||nums==null)return -1;int res=find(nums,0,nums.length-1);return res;}public int find(int []nums,int start,int end){int mid=(start+end)/2;int midnum=nums[mid];if(start<=end){if(midnum==mid){return mid;}else if(midnum>mid){end=mid-1;}else{start=mid+1;}}return find(nums,start,end);}}轉載于:https://www.cnblogs.com/yjxyy/p/10846886.html
總結
以上是生活随笔為你收集整理的39.数组中数值和下标相等的元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P3367 【模板】并查集
- 下一篇: jquery3和layui冲突导,致使用