剑指offer:第8题旋转数组的最小数字

xiaoxiao2021-02-28  95

public class _Test_08 { public static void main(String[] args) { int[] array = {1,2,0,1,1}; System.out.println(findMinNum(array)); } private static Integer findMinNum(int[] array) { // TODO Auto-generated method stub if (array == null) { return null; } int left = 0; int right =array.length - 1; int mid = 0; while(array[left] >= array[right]){ if (right - left <= 1) { mid = right; break; } mid = (left + right)/2; if (array[left] == array[right] && array[left] == array[mid]) { if (array[left + 1]!= array[right - 1]) { mid = array[left + 1] < array[right -1] ? array[left + 1] :array[right - 1]; break; }else { left++; right--; } }else{ if (array[mid] >= array[left]) { left = mid; }else{ right = mid; } } } return array[mid]; } }
转载请注明原文地址: https://www.6miu.com/read-73535.html

最新回复(0)