zoukankan      html  css  js  c++  java
  • 33. 搜索旋转排序数组 二分法

    时隔半年再次尝试这题,当时做的太复杂

    二分法注意细节:

      1. 左右端点初始化时,右端点记得-1   l,r = 0, len(nums)-1

      2. 二分查找结束的判断条件,记得加等号    while  l <= r:

      3. mid 的 赋值  mid = l + (r-l)//2 或者  mid = (l+r) //2  

      4. 二分法的跳出条件: if nums[mid] == taget: return mid 

      5. 判断二分边的时候,记得取端点,加等号

        if  nums[0] <= target < nums[mid]

        if nums[ mid ] < target <= nums[-1]

        如果不加,端点就取不到

    本题细节:  

      1. 需要将 nums[0] == nums[mid]  与  nums[0] < nums[target] 两种情况合并,因为mid取为左端点,一定不能忽略 nums[0] == nums[mid] 这种情况

  • 相关阅读:
    POJ
    FZU
    HDU
    HDU
    HDU
    HDU
    Educational Codeforces Round 84 E. Count The Blocks
    B Boundary(由弦求圆)
    D. Maximum Sum on Even Positions(翻转1次,求最大偶数位和)
    E. DeadLee(思维,拓扑图处理)
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12889217.html
Copyright © 2011-2022 走看看