zoukankan      html  css  js  c++  java
  • lintcode159- Find Minimum in Rotated Sorted Array- medium

    Suppose a sorted array is rotated at some pivot unknown to you beforehand.

    (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

    Find the minimum element.

     Notice

    You may assume no duplicate exists in the array.

    Example

    Given [4, 5, 6, 7, 0, 1, 2] return 0

    OOXX二分法(find the first X)。特征:相对最后一个数的大小。O:>nums[end]; X: <=nums[end]。

    切记要和最后一个数比,不可以和第一个数比,因为和第一个数比在没有rotate过的特殊情况里会找空。

    public class Solution {
        /*
         * @param nums: a rotated sorted array
         * @return: the minimum number in the array
         */
        public int findMin(int[] nums) {
            // write your code here
    
            int start = 0;
            int end = nums.length - 1;
            int cmpTarget = nums[end];
    
            while (start + 1 < end){
                int mid = start + (end - start) / 2;
                if (nums[mid] > cmpTarget){
                    start = mid;
                } else {
                    end = mid;
                }
            }
    
            return Math.min(nums[start], nums[end]);
        }
    }
  • 相关阅读:
    内部类
    抽象类与接口
    多态
    继承
    封装
    创建对象的内存分析
    构造器
    面向对象 类与对象
    uniapp跳转
    uniapp-组件引用错误,仅支持 import 方式引入组件
  • 原文地址:https://www.cnblogs.com/jasminemzy/p/7580058.html
Copyright © 2011-2022 走看看