【LeetCode】154. Find Minimum in Rotated Sorted Array II 解题报告(Python)

标签: LeetCode


题目地址:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/description/

题目描述:

Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed? Would this affect the run-time complexity? How and why?

Suppose an array sorted in ascending order 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.

The array may contain duplicates.

题目大意

找出可能含有重复数字的旋转有序数组中的最小值。

解题方法

这个题就是剑指offer中的原题。可以看我之前的博客http://blog.csdn.net/fuxuemingzhu/article/details/79501202

思想就是如果出现了重复数字,那么二分查找就没有作用了,必须使用顺序查找了。

class Solution(object):
def findMin(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
p1, p2 = 0, len(nums) - 1
mid = p1
while nums[p1] >= nums[p2]:
if p2 - p1 == 1:
mid = p2
break
mid = (p1 + p2) / 2
if nums[mid] == nums[p1] and nums[mid] == nums[p2]:
return self.minInOrder(nums, p1, p2)
if nums[mid] >= nums[p1]:
p1 = mid
elif nums[mid] <= nums[p2]:
p2 = mid
return nums[mid] def minInOrder(self, nums, index1, index2):
n1 = nums[index1]
for i in range(index1 + 1, index2):
if n1 > nums[i]:
return nums[i]
return n1

日期

2018 年 3 月 13 日

最新文章

  1. Solr与MySQL查询性能对比
  2. vncserver和Ubuntu Xfce4远程桌面环境的配置,解决不显示图形界面
  3. 移动端调试工具-Weinre
  4. Linq To Sql多表联合查询
  5. Android必会小功能总结
  6. Summary of Amazon Marketplace Web Service
  7. Humming Bird A20 SPI2驱动编译
  8. apache 做负载
  9. Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
  10. Spring定时器实现(一)
  11. linux crontab详解
  12. 人脸识别Android SDK集成
  13. 9. Palindrome Number (JAVA)
  14. jquery获取URL的参数和锚点
  15. R语言包_dplyr_1
  16. Openstack 在VMware虚拟机ESXI和Workstation下安装需要更改参数
  17. Spring boot整合shiro权限管理
  18. 【BZOJ2440】[中山市选2011]完全平方数
  19. C++练习 | 二分练习
  20. 20155202 《Java程序设计》实验三(敏捷开发与XP实践)实验报告

热门文章

  1. mysql—将字符型数字转成数值型数字
  2. Pyquery解析库的安装和使用
  3. ab命令执行压力测试
  4. 日常Java 2021/10/25
  5. A Child&#39;s History of England.8
  6. 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛
  7. 2021广东工业大学十月月赛 F-hnjhd爱序列
  8. 基于DataX将数据从Sqlserver同步到Oracle
  9. liunux 6.5设置网卡默认开启
  10. 【JAVA】【JVM】内存结构