剑指offer:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{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:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。相关推荐
- 剑指offer:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
剑指offer算法题 二分查找,旋转数组最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组[3, ...
- 数组的旋转——把一个数组最开始的若干个元素搬到数组的末尾
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组[3,4,5,1,2]为[1,2,3,4,5]的一个 ...
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。(js代码)
1.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...
- 【每日一题】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5]
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...
- 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...
- 【java】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...
- 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 ...
- 《剑指Offer》面试题四(牛客网在线编程第一题):二维数组中的查找(Java实现)
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 剑指 Offer II 114. 外星文字典(困难 图 bfs 哈希表 拓扑排序 字符串 数组)
剑指 Offer II 114. 外星文字典 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同. 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按 ...
最新文章
- 图像相似度计算之直方图方法OpenCV实现
- 想让进程后台运行,试试Linux的nohup命令,3分钟学会。
- 微信的通讯录首字母滑动的实现
- tp5上传文件并获取文件路径_thinkphp表单上传文件并将文件路径保存到数据库中...
- 将github pages搭建的网页添加到百度搜索资源平台上
- 对lIKE语句的优化
- php扇形分布图,php生成扇形比例图的实例代码
- python爬取天气数据山东_Python的学习《山东省各城市天气爬取》
- 如何用U盘之家U盘启动盘制作工具实现U盘装系统
- Zabbix 服务器性能指标参考(学习笔记十七)
- Spring Boot 设置启动时banner
- [转]python cookielib
- 【剖析 | SOFARPC 框架】系列之 SOFARPC 注解支持剖析
- 5套精美的石器时代游戏官方网页源码
- Python-常用模块有哪些
- 协同编辑--OT算法之外的世界
- 我用Python爬虫获取数据,分析双色球中奖概率,差点就中了
- mysql未开启binlog恢复数据_MYSQL bin_log 开启及数据恢复
- msec php,关于QThread::wait(msec)函数的讨论
- photo mosaic 拼图马赛克