title: 寻找旋转排序数组中的最小值II


题目描述

题目链接:寻找旋转排序数组中的最小值II

解题思路

和上题同理:数组特点有 nums[mid] < nums[right],最小值肯定在mid左边,nums[mid] > nums[right],最小值肯定在mid右边,但是 nums[mid] = nums[right]的时候,可能在左边也在右边,如[0,1,1,1,1]、[1,1,1,0,1],可以剪掉right

    int findMin(vector<int>& nums) {
int left = 0, right = nums.size() - 1;
int mid; while (left < right) {
mid = left + ((right - left) >> 1);
if (nums[mid] > nums[right]) left = mid + 1;
else if (nums[mid] < nums[right]) right = mid;
else right--;//证明左边都是同一个数字,可以砍掉最右的那个位置
} return nums[left];
}

复杂度分析

  • 空间复杂度:o(logn)
  • 时间复杂度:O(1)

最新文章

  1. oracle迁移postgres之-Ora2Pg
  2. Configure Apache Virtual Hosts - CentOS 7
  3. IP查询接口地址
  4. RFID应用范围
  5. viewport ---移动端详解
  6. 【实例】html5-canvas中实现背景图片的移动
  7. android sdk manager 无法更新解决方法
  8. Java 多线程处理[全]
  9. hiho一下 第九十六周 数论五&#183;欧拉函数
  10. CentoS 下报的 Requires: perl(:MODULE_COMPAT_5.8.8)
  11. iOS开发HTTPS实现之信任SSL证书和自签名证书
  12. Tomcat架构以及理解sever.xml
  13. Intellij IDEA 2016 mybatis 生成 mapper
  14. MySQL基础语句与其在Python中的使用
  15. CI框架剖析一
  16. 【一天一道LeetCode】#110. Balanced Binary Tree
  17. idea2018+maven+web新手maven指南
  18. php利用自定义key,对数据加解密的方法
  19. PHP7 学习笔记(九)phpsize动态编译openssl扩展 (微信公众平台)
  20. java poi生成excel(个人例子js-jsp-java)

热门文章

  1. 有哪些不同类型的 IOC(依赖注入)方式?
  2. ROS机器人操作系统相关书籍、资料和学习路径
  3. JavaScript の 内容属性(HTML属性attribute)和 DOM 属性(property)
  4. Codepen 每日精选(2018-4-22)
  5. java中Array(数组)的用法
  6. E-R图转换为关系模型
  7. 小程序tab栏可滑动,可点击居中demo
  8. input type=&#39;file&#39;限制上传文件类型
  9. 跳转到下一页面时,必须先勾选阅读xx须知/协议才可跳转功能
  10. eBPF Cilium实战(1) - 基于团队的网络隔离