网站开发总体流程图,礼品公司网站建设,yfcms企业网站建设,提高关键词排名的软文案例题目描述#xff1a; 假设一个单调递增的数组里的每个元素都是整数且是唯一的#xff0c;请编程实现一个函数#xff0c;找出数组中任意一个数值等于其下标的元素#xff0c;例如#xff0c;在数组{-3#xff0c;-1,1,3,5}中数字3和它的下标相同。 思路分析#xff1a; …题目描述 假设一个单调递增的数组里的每个元素都是整数且是唯一的请编程实现一个函数找出数组中任意一个数值等于其下标的元素例如在数组{-3-1,1,3,5}中数字3和它的下标相同。 思路分析 由于是排序的且递增的数组的查找问题那么我们考虑使用二叉查找法。假设我们某一步抵达了某个数字且这个数字等于其在数组中的下标那么我们就找到了答案。如果这个数字不等于其下标那么我们判断如果这个数字大于其下标根据递增数组的性质这个数字后面的数都大于其相应的下标所以下一阶段我们在左段进行查找。如果这个数字小于其坐标那么根据递增数组的性质这个数字前面的数都小于其对应的下标所以下一阶段在后半段进行查找。 代码 public class Test{public int GetNumberSameAsIndex(int[]nums){if(nums.length0||numsnull)return -1;int resfind(nums,0,nums.length-1);return res;}public int find(int []nums,int start,int end){int mid(startend)/2;int midnumnums[mid];if(startend){if(midnummid){return mid;}else if(midnummid){endmid-1;}else{startmid1;}}return find(nums,start,end);}} 转载于:https://www.cnblogs.com/yjxyy/p/10846886.html