zoukankan      html  css  js  c++  java
  • leetcode154. 寻找旋转排序数组中的最小值 II

    假设按照升序排序的数组在预先未知的某个点上进行了旋转。

    ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

    请找出其中最小的元素。

    注意数组中可能存在重复的元素。

    示例 1:

    输入: [1,3,5]
    输出: 1

    示例 2:

    输入: [2,2,2,0,1]
    输出: 0

    说明:

        这道题是 寻找旋转排序数组中的最小值 的延伸题目。
        允许重复会影响算法的时间复杂度吗?会如何影响,为什么?

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解答:

    还是一样,看之前的33,81题,不说了。

     1 class Solution {
     2     public int findMin(int[] nums) {
     3         int l=0;
     4         int r=nums.length-1;
     5         while(l<=r)
     6         {
     7             if(nums[l]<nums[r])
     8                 return nums[l];
     9             int mid=l+(r-l)/2;
    10             if(nums[mid]>nums[l])
    11                 l=mid+1;
    12             else if(nums[mid]<nums[r])
    13                 r=mid;
    14             else
    15                 l++;
    16         }
    17         return nums[r];
    18     }
    19 }
    View Code
  • 相关阅读:
    爬虫 xpath
    Mongo 基础命令
    大数据 Spark 连接外部资源
    大数据 Spark 异常
    大数据 Spark 安装
    python 对象克隆
    一个Vue表单提交防抖的实用例子
    一个防抖和节流的实用例子
    前端面试100问(1-10)
    每日技术:encodeURI,encodeURIComponent,toFixed
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11875619.html
Copyright © 2011-2022 走看看