[刷题]Find Minimum in Rotated Sorted Array II

来源:互联网 发布:电缆标识球数据 编辑:程序博客网 时间:2024/06/05 15:52

[LintCode]Find Minimum in Rotated Sorted Array II

public class Solution {    /**     * @param num: a rotated sorted array     * @return: the minimum number in the array     */    public int findMin(int[] num) {        // 2015-07-20        if (num == null || num.length == 0) {            return 0; // throw exception        }         if (num.length == 1) {            return num[0];        }                int start = 0;        int end = num.length - 1;                while (start + 1 < end) {            int mid = (start + end) / 2;            if (num[start] == num[mid] || num[start] == num[end]) {                start++;                continue;            }            if (num[end] == num[mid]) {                end--;                continue;            }            // num[start] num[mid] num[end] 两两不等            if (num[start] < num[end]) {                return num[start];            } else {                if (num[start] < num[mid]) {                    start = mid;                                } else {                    end = mid;                }            }        }                if (num[start] < num[end]) {            return num[start];        } else {            return num[end];        }    }}


0 0
原创粉丝点击