Maximum Number in Mountain Sequence

public class Solution {
    /**
     * @param nums a mountain sequence which increase firstly and then decrease
     * @return then mountain top
     */
    public int mountainSequence(int[] nums) {
        // Write your code here
        int l = 0, r = nums.length - 1;
        int mid = (l + r) / 2;
        
        int lst = -1;
        
        while(l < r){
            if(nums[mid] < nums[mid + 1])
                l = mid;  
            else r = mid;
            
            mid = (l + r) / 2;
            if(mid == lst){
                break;
            }
            lst = mid;
        }
        if(nums[l] > nums[r]){
            return nums[l];
        }
        else{
            return nums[r];
        }
    }
}

最后更新于

这有帮助吗?