题解 | #二分查找-I#

二分查找-I

https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @param target int整型 
     * @return int整型
     */
    public int search (int[] nums, int target) {
        // write code here
        int position=search_target(nums,0,nums.length-1,target);
        return position;
    }
    
    public int search_target(int[] array,int left,int right,int target){
        if(array.length<1){return -1;}
        int position=-1;
        if((right==left+1)&&(array[left]!=target)&&(array[right]!=target)){return -1;}
        if(array[left]==target){return left;}
        if(array[right]==target){return right;}//两种直接输出的case
        if(array[left]<target&&array[right]>target){//target位于之间
            int mid=(left+right)/2;
            if(array[mid]==target){return mid;}
            else if(array[mid]>target){//target在左侧
                right=mid;
                position=search_target(array,left,right,target);
                
            }
            else if(array[mid]<target){//target在右侧
                left=mid;
                position=search_target(array,left,right,target);
            }
        }
        if(array[left]>target||array[right]<target){return -1;}
        
        
        return position;
    
    }
}
全部评论

相关推荐

lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务