zoukankan      html  css  js  c++  java
  • Find Minimum in Rotated Sorted Array II

    Question: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/

    题目:

    Follow up for "Find Minimum in Rotated Sorted Array":
    What if duplicates are allowed?

    Would this affect the run-time complexity? How and why?

    思路:

    两端寻找,跳过重复项,直至 nums[start] 与前项不同,nums[end] 与后项不同,且nums[start] 与 nums[end] 不相同。

    其他部分,同 Find Minimum in Rotated Sorted Array。

     1 public int findMin(int[] nums) {
     2     if(nums == null || nums.length == 0) {
     3         return 0;
     4     }
     5     
     6     int start = 0;
     7     int end = nums.length - 1;
     8     int minNum = nums[start];
     9     
    10     while(start < end) {
    11         int startNum = nums[start++];
    12         int endNum = nums[end--];
    13         minNum = Math.min(minNum, Math.min(startNum, endNum));
    14         
    15         while(start < end && nums[start] == startNum) {
    16             start++;
    17         }
    18         
    19         while(end > start && nums[end] == endNum) {
    20             end--;
    21         }
    22         
    23         if(start == end) {
    24             return Math.min(minNum, nums[start]);
    25         } else if(nums[start] == nums[end]) {
    26             continue;
    27         }
    28         
    29         int mid = (start + end)/2;    // 此处 nums[mid],nums[start],nums[end]的值将均不同
    30         if(nums[start] < nums[end]) {
    31             return Math.min(minNum, nums[start]);
    32         } else if(nums[end] < nums[mid]) {
    33             start = mid + 1;
    34             minNum = Math.min(minNum, nums[end]);
    35         } else if(nums[start] > nums[mid]) {
    36             start++;
    37             end = mid;
    38             minNum = Math.min(minNum, nums[mid]);
    39         } 
    40     }
    41     
    42     return minNum;
    43 }
  • 相关阅读:
    JS 获取浏览器窗口大小方面的
    可以直接拿来用的15个jQuery代码片段
    JS 键盘方面的
    JAVA 实现DES MD5加密
    Spring SpringMvc Hibernate整合
    easyUI comboselector使用
    页面中嵌套html代码显示
    在IntelliJ上操作GitHub
    Maven项目配置第三方jar包
    JSP自定义标签
  • 原文地址:https://www.cnblogs.com/Phoenix-Fearless/p/5101903.html
Copyright © 2011-2022 走看看