81. Search in Rotated Sorted Array II.go

二分查找

func search(nums []int, target int) bool {
    l := len(nums)
    if l == 0 {
        return false
    }
    left, right := 0, l-1
    for left <= right {
        mid := left + (right-left)/2
        if nums[mid] == target {
            return true
        } else if nums[mid] < nums[right] {
            if nums[mid] < target && nums[right] >= target {
                left = mid + 1
            } else {
                right = mid - 1
            }
        } else if nums[mid] > nums[right] {
            if nums[left] <= target && nums[mid] > target {
                right = mid - 1
            } else {
                left = mid + 1
            }
        } else {
            right--
        }

    }
    return false
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 泪珠顺着我的眼角,一滴一滴滑落,如阳光下的金子,闪烁着。那一刻,我流泪了。我也懂得了,何为珍惜,何为感恩。 ...
    顾彧章阅读 815评论 0 2
  • 佛 说话不急不慢; 吃饭不咸不淡; 遇事不怒不怨; 待人不分贵贱; ...
    河北南和刘志玉阅读 106评论 1 2
  • 阅读理解题目是14分一个,是四六级考试里分数最多的题目(除了作文),你的阅读理解考不好,四六级基本别想过。 完形填...
    仙灵之谷阅读 474评论 0 7