• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cynchanpin

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

LeetCode Find Minimum in Rotated Sorted Array

Suppose a sorted array 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.

You may assume no duplicate exists in the array.

思路分析:这题主要考察二分查找,在Rotated Sorted Array中找最小和Search in Rotated Sorted Array相似,仅仅只是此时须要不断把最左边的元素A[l]与A[m]比較

1. 假设A[m] < A[l] 那么应该在左边找,更新右边的边界right。

2.假设A[m] > A[l] 那么应该在右边找,更新左边的边界left。

3.假设A[m]= A[l] ,l++;

上述规律能够通过举样例非常快发现,这样能够每次降低一半元素,得到O(logN)的算法。注意这题A[m] = A[l] 也有可能发生,尽管没有反复元素,可是m和l可能指向同一个元素。比方当这个数组仅仅有两个元素的时候。

posted on 2017-05-01 16:44  cynchanpin  阅读(143)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3