在有序但还有空的数组中查找字符串

题目:

在有序但还有空的数组中查找字符串_第1张图片

思路:这个应该也可以用map的那种吧,不过需要遍历整个数组。复杂度是o(n);使用二分算法的话,时间复杂度是o(logn)。而且这个字符数组的话还是一个有序的字符数组。这个题我自己写的输入输出可能是有些问题,结果不正确。改用直接写数组是对的。

代码:

public static int method(String[]a1,String b){
    if(a1==null||a1.length==0||b==null){
        return -1;
    }
    int res=-1;
    int left=0;
    int right=a1.length-1;
    int mid=0;
    int i=0;
    while(left<=right){
        mid=(left+right)/2;
        if(a1[mid]!=null&&a1[mid].equals(a1[mid])){
            res=mid;
            right=mid-1;
        }else if(a1[mid]!=null){
            if(a1[mid].compareTo(b)<0){
                left=mid+1;
            }
            else{
                right=mid-1;
            }
        }
        else{
             i=mid;

                while(a1[i]==null&&--i>=left)
                    ;


            if(i 
  

 

你可能感兴趣的:(在有序但还有空的数组中查找字符串)