【2对1错1】旋转数组的最小元素

2019-02-09  本文已影响1人  7ccc099f4608

https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

日期 是否一次通过 comment
2019-02-07 20:20 Y 遍历一遍
2019-02-09 19:09 Y 二分查找
2019-02-10 12:09 Y 注意下判断条件里两边都要写等号,防止数组全是同一个值

题目:求先增后减数组中的最小元素
思路:

  1. 近似有序数组元素的查找,二分法

1. 二分法

import java.util.*;
public class Solution {
    public int minNumberInRotateArray(int[] array) {
        
        if(array.length == 0) {
            return 0;
        }
        
        int sta = 0;
        int end = array.length - 1;
        while(sta + 1 < end) {
            int mid = sta + (end - sta) / 2;
            if(array[mid] >= array[sta]) {
                sta = mid;
            } else {
                end = mid;
            }
            
        }
        
        return Math.min(array[sta], array[end]);
    }
}
上一篇下一篇

猜你喜欢

热点阅读