首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

旋转数组的最小数字

阅读文本大概需要 2.7 分钟。

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组为的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

思路

第一眼看到这个题还没明白什么意思,后面才知道其实就是一个找一个旋转数组中最小数字。想到这里思路就比较清晰了,首先判断一下是不是空数组,然后再判断数组的个数是不是为1,因为假如为1,那么最小的数就是这个唯一的数了。

注意题目中说的非递减数组,那么就可能是递增数组,或者是[1,2,2,2,2,2]这样的数组旋转。接下来就是写一个循环遍历一下,一旦发现前面的数字大于后面的数字,那么后面那个数字就是最小的数字了。

源码

项目工程

如果你想看到《剑指offer》的所有源码,欢迎 star 我的 github project。

《剑指offer》的 github 地址:https://github.com/liuenci/GoOffer

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G20ECK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券