博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode——Find Minimum in Rotated Sorted Array II
阅读量:5116 次
发布时间:2019-06-13

本文共 1048 字,大约阅读时间需要 3 分钟。

Question

Follow up for "Find Minimum in Rotated Sorted Array":

What if duplicates are allowed?

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

Suppose an array sorted in ascending order 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.

The array may contain duplicates.

Solution

抓住数组的特点。

Code

class Solution {public:    int findMin(vector
& nums) { int size = nums.size(); if (size == 1) return nums[0]; int low = 0; int high = size - 1; while (low < high) { // 没用递归,所以注意求中间节点的方法 int mid = low + (high - low) / 2; // 如果更小,那么会比右边的都小 if (nums[mid] < nums[high]) high = mid; // 如果更大,那最小的肯定在右边 else if (nums[mid] > nums[high]) low = mid + 1; // 如果相等,不知道最大值在左边还是在右边 else high--; } return nums[low]; }};

转载于:https://www.cnblogs.com/zhonghuasong/p/7620023.html

你可能感兴趣的文章
一次动态sql查询订单数据的设计
查看>>
C# 类(10) 抽象类.
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
我对前端MVC的理解
查看>>
Silverlight实用窍门系列:19.Silverlight调用webservice上传多个文件【附带源码实例】...
查看>>
2016.3.31考试心得
查看>>
mmap和MappedByteBuffer
查看>>
Linux的基本操作
查看>>
转-求解最大连续子数组的算法
查看>>
对数器的使用
查看>>
【ASP.NET】演绎GridView基本操作事件
查看>>
ubuntu无法解析主机错误与解决的方法
查看>>
尚学堂Java面试题整理
查看>>
MySQL表的四种分区类型
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
Loj #139
查看>>