局部最小值问题:在一个相邻位置的数不相等的数组中寻找任意一个局部最小值
public class BSAwesome { public static int getLessIndex(int[] arr){ if (arr==null || arr.length ==0){ return -1; } if (arr[0] < arr[1]){ return 0; } if (arr[arr.length-1] < arr[arr.length-2]){ return arr.length-1; } int left = 1; int right = arr.length - 2; int mid = 0; while (left < right){ mid = (left + right) / 2; if (arr[mid] > arr[mid - 1]){ right = mid - 1; }else if (arr[mid] > arr[mid + 1]){ left = mid + 1; }else return mid; } return left; } public static void main(String[] args) { int[] arr = {1,0,3,5,6,8}; System.out.println("数组中某一个局部最小值的位置:"+ getLessIndex(arr)); } }
用例运行结果:
学习的博客多用于在笔记中,防止笔记过于臃肿,所以将样例及运行结果放在博客中,后以超链接的形式记录在笔记中,所以有些博文过于单薄。如果有小伙伴遇到问题欢迎评论,看到就会回复,学渣一枚,加油努力。