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

C++版本:

#include <cmath>
class Solution {
public:int minNumberInRotateArray(vector<int> rotateArray) {int left=0;int right=rotateArray.size()-1;if (rotateArray.empty()){return 0;}while (left<right){if (rotateArray[left]<rotateArray[right])return rotateArray[left];int mid=left+(right-left)/2;if (rotateArray[left]<rotateArray[mid])left=mid+1;else if (rotateArray[mid]<rotateArray[right])right=mid;else{++left;}}return rotateArray[left];}
};

Python版本:

直接循环:

# -*- coding:utf-8 -*-
class Solution:def minNumberInRotateArray(self, rotateArray):# write code hereif len(rotateArray)==0:return 0;res_min=100000000000000000;for i in range(len(rotateArray)-1):j=i+1if rotateArray[i]>rotateArray[j] and rotateArray[j]<res_min :res_min=rotateArray[j]return res_min

二分查找:

# -*- coding:utf-8 -*-
class Solution:def minNumberInRotateArray(self, rotateArray):# write code hereif len(rotateArray)==0:return 0;left=0;right=len(rotateArray)-1while (left<right):if rotateArray[left]<rotateArray[right]:#数组是否为非递减数组return rotateArray[left]mid=left+(right-left)//2if rotateArray[left]<rotateArray[mid]:# 左半数组为有序数组left=mid+1elif rotateArray[mid]<rotateArray[right]:#右半数组为有序数组right=midelse:left=left+1#缩小范围return  rotateArray[left]

剑指offer:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。相关推荐

  1. 剑指offer:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。

    剑指offer算法题 二分查找,旋转数组最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组[3, ...

  2. 数组的旋转——把一个数组最开始的若干个元素搬到数组的末尾

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组[3,4,5,1,2]为[1,2,3,4,5]的一个 ...

  3. 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。(js代码)

    1.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...

  4. 【每日一题】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5]

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...

  5. 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组

    题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...

  6. 【java】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...

  7. 6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转

    public class Solution {public int minNumberInRotateArray(int [] array) {int min=array[0];for(int i=1 ...

  8. 《剑指Offer》面试题四(牛客网在线编程第一题):二维数组中的查找(Java实现)

    题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  9. 剑指 Offer II 114. 外星文字典(困难 图 bfs 哈希表 拓扑排序 字符串 数组)

    剑指 Offer II 114. 外星文字典 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同. 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按 ...

最新文章

  1. 图像相似度计算之直方图方法OpenCV实现
  2. 想让进程后台运行,试试Linux的nohup命令,3分钟学会。
  3. 微信的通讯录首字母滑动的实现
  4. tp5上传文件并获取文件路径_thinkphp表单上传文件并将文件路径保存到数据库中...
  5. 将github pages搭建的网页添加到百度搜索资源平台上
  6. 对lIKE语句的优化
  7. php扇形分布图,php生成扇形比例图的实例代码
  8. python爬取天气数据山东_Python的学习《山东省各城市天气爬取》
  9. 如何用U盘之家U盘启动盘制作工具实现U盘装系统
  10. Zabbix 服务器性能指标参考(学习笔记十七)
  11. Spring Boot 设置启动时banner
  12. [转]python cookielib
  13. 【剖析 | SOFARPC 框架】系列之 SOFARPC 注解支持剖析
  14. 5套精美的石器时代游戏官方网页源码
  15. Python-常用模块有哪些
  16. 协同编辑--OT算法之外的世界
  17. 我用Python爬虫获取数据,分析双色球中奖概率,差点就中了
  18. mysql未开启binlog恢复数据_MYSQL bin_log 开启及数据恢复
  19. msec php,关于QThread::wait(msec)函数的讨论
  20. photo mosaic 拼图马赛克

热门文章

  1. Java之消息推送浅入浅出
  2. Hibernate学习文章
  3. 计网(第五版)3-41
  4. 自定义圆形、半圆形ProgressBar
  5. 上项线体表位置_人体体表定位标志
  6. Ajax请求URL的写法
  7. arcgis绘核密度分布图
  8. 飞思卡尔imx7 html5,【经验分享】飞思卡尔IMX6处理器的GPIO配置方式
  9. 腾讯云和阿里云,百度云,华为云服务器哪个的性能比较稳定,没有出现经常崩溃现象呢?
  10. 闲置oppoR9sk---获取root权限