码迷,mamicode.com
首页 > 其他好文 > 详细

lintcode585- Maximum Number in Mountain Sequence- medium

时间:2017-09-23 10:30:03      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:写法   src   .com   blog   倒数   无法   条件   param   except   

Given a mountain sequence of n integers which increase firstly and then decrease, find the mountain top.

Example

Given nums = [1, 2, 4, 8, 6, 3] return 8
Given nums = [10, 9, 8, 7], return 10

 
用OOXX的二分法(find the first X)。特征O:nums[mid+1]-nums[mid]>0; 特征X:nums[mid+1]-nums[mid]<0。
1.中间用nums[mid+1]的时候可以直接用,因为这种while条件写法+mid总偏左本来就决定了mid最远到倒数第二个数。
技术分享
 
 
public class Solution {
    /*
     * @param nums: a mountain sequence which increase firstly and then decrease
     * @return: then mountain top
     */
    public int mountainSequence(int[] nums) {

        // 要怎么处理输入???
        if (nums == null || nums.length == 0){
            throw new IllegalArgumentException();
        }

        int start = 0;
        int end = nums.length - 1;

        while (start + 1 < end){
            int mid = start + (end - start) / 2;
            // 应该不用判断mid < nums.length - 1把,天然的。
            // 等于情况似乎无法处理,输入应该这种描述不会给吧
            if (nums[mid + 1] - nums[mid] > 0){
                start = mid;
            } else {
                end = mid;
            }
        }

        if (nums[start] > nums[end]){
            return nums[start];
        }

        return nums[end];

    }
}

 

lintcode585- Maximum Number in Mountain Sequence- medium

标签:写法   src   .com   blog   倒数   无法   条件   param   except   

原文地址:http://www.cnblogs.com/jasminemzy/p/7580047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!