[leetcode]Search in Rotated Sorted Array II @ Python

news/2024/7/24 13:32:07 标签: 数据结构与算法, python

原题地址:https://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/

题意:

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

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

Write a function to determine if a given target is in the array.

解题思路:还是二分查找的变种。需要考虑好边界情况。

代码:

class Solution:
    # @param A a list of integers
    # @param target an integer
    # @return a boolean
    def search(self, A, target):
        left=0; right=len(A)-1
        while left<=right:
            mid=(left+right)/2
            if A[mid]==target: return True
            if A[left]==A[mid]==A[right]:
                left+=1; right-=1
            elif A[left]<=A[mid]:
                if A[left]<=target<A[mid]: right=mid-1
                else: left=mid+1
            else:
                if A[mid]<=target<A[left]: left=mid+1
                else:right=mid-1
        return False

 


http://www.niftyadmin.cn/n/1130366.html

相关文章

父类不能转换成子类

父类不能转换成子类 Exception in thread "main" java.lang.ClassCastException: Person cannot be cast to Boyat Test.main(Test.java:5)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMe…

ansible安装和简单使用

一、安装1、安装第三方epel源centos 5的epelrpm -ivh http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpmcentos 6的epelrpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm由于是6版本所以安装6的epel2、安装ansibl…

Textarea高度随内容自适应地增长,无滚动条

<HTML> <HEAD> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <TITLE>枫芸志 文本框textarea高度自适应增长/伸缩</TITLE> </HEAD> <BODY><textarea id"txtContent" rows&q…

岛田庄司《占星术杀人魔法》读后感

昨天晚上夜谈的时候&#xff0c;聊到了少年包青天里的一个分尸案&#xff0c;今天查了查&#xff0c;叫《隐逸村案》&#xff0c;里面实用6个人的尸体拼出7个人的假象&#xff0c;立即就想到了《占星术杀人案》。其有用这个想法的小说还真不少&#xff0c;包青天里的应该是借鉴…

指定時間點js 倒計時間

指定時間點&#xff1a;<script type "text/javascript"><!--//functionGetRTime(){var EndTime new Date(2006,11,15,12,45); //截止时间:2006年6月10日0时0分var NowTime new Date();var nMS EndTime.getTime() - NowTime.getTime();var nD Math.floor(n…

rabbitmq集群+haproxy 相关 安装与配置和注意事项

安装 erlang , rabbitmq, haproxy erlang 安装 wget http://www.rabbitmq.com/releases/erlang/erlang-17.4-1.el6.x86_64.rpmyum install erlang-17.4-1.el6.x86_64.rpm 最后输入 erl &#xff0c;进入erlang shell界面就表示安装成功&#xff1a; rabbitmq 安装配置rabbitmq …

固定资产折旧方法

2019独角兽企业重金招聘Python工程师标准>>> 1、年限平均法&#xff08;也称直线法&#xff09; 年折旧率 &#xff08;1 &#xff0d; 预计残值率&#xff09; 预计使用年限 100% 月折旧额 固定资产原价 年折旧率 12 2、工作量法 单位工作量折旧额 固定资产…

BitBucket引入灾难恢复和合并策略

最近发布的BitBucket Server和BitBucket Data Center 4.9让定义灾难恢复策略及设置首选合并策略等成为可能。\\BitBucket Data Center通过将一个BitBucket Server主实例复制到一个“冷备”实例实现灾难恢复支持&#xff0c;这两个实例可以处于不同的地理区域。为了实现灾难恢复…