配列内の等しい値と添え字を持つ要素(Java)

配列内の値と添え字が等しい要素

トピック:
単調増加する配列の各要素が整数で一意であるとします。添え字と等しい値を持つ配列内の要素を検索する関数をプログラムしてください。たとえば、配列[-3、-1、1、3、5]では、数値3はその添え字と同じです。
コード:

/**
 * @desc 数组中数值和下标相等的元素
 * @author zhaoliang
 * @date 20200416
 */

public class Main53_3 {
    //  数组中数值和下标相等的元素
    public static int findNum(int[] array){
        if (array.length == 0){
            return -1;
        }
       int l = 0;
       int r = array.length-1;
       while (l < r){
           int mid = (l + r) >> 1;

           if (mid == array[mid]){
               return mid;
           }
           if (mid < array[mid]){
               if (mid == 0){
                   return -1;
               }
               r = mid -1;
           }else if(mid > array[mid]){
               if (mid == array.length-1){
                   return -1;
               }
               l = mid +1;
           }
       }
       if (l == array[l]){
           return l;
       }
       return -1;
    }

}
71件の元の記事を公開しました Likes0 訪問数866

おすすめ

転載: blog.csdn.net/sinat_40968110/article/details/105551703