标签:sys div IV length == fir out one print
一般的二分查找只要求找到目标元素的位置,但是不保证该位置是否为该元素出现的第一个位置或者最后一个位置,现在想输出该元素第一次出现的位置:
public class BinarySearchFirstOne { public static void main(String[] args) { int[] arr = {1,2,3,3,3,4,5,5,6,7,7,7,8,9,9}; int target = 7; System.out.println(search(arr, target)); } public static int search(int[] arr, int target) { int lo = 0; int hi = arr.length - 1; int mid; while(lo < hi) { mid = (lo + hi) >> 1; if(arr[mid] < target) { lo = mid +1; } else hi = mid; } if(arr[lo] == target) { return lo; } else return -1; } }
标签:sys div IV length == fir out one print
原文地址:https://www.cnblogs.com/xuhaojun/p/9108753.html