06旋转数组的最小数字
//旋转数组的最小数字 //把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 //思路:两个前后指针进行比较; //先找到分界点;分三种情况,第一种就是前面中间和后面的元素相等,只能顺序查找; //第二种,中间元素位于前面的递增数组;第三种情况,中间元素位于后面的数组class Solution { public:int minNumberInRotateArray(vector<int> rotateArray){int size = rotateArray.size();if (size == 0){return 0;}//前后两个指针向中间靠拢int left = 0;int right = size - 1;int mid = 0;//旋转的条件:rotateArray[left] >= rotateArray[right]while (rotateArray[left] >= rotateArray[right]){//分界点if (right - left == 1){mid = right;break;}//第一种情况--顺序查找mid = (right - left) / 2;if (rotateArray[left] == rotateArray[right] && rotateArray[left] == rotateArray[mid]){int tmp = rotateArray[left];for (int i = left+1; i < right; i++){if (rotateArray[i] < tmp){tmp = rotateArray[i];}}return tmp;}//第二种情况-在数组的左侧if (rotateArray[mid] >= rotateArray[left]){left = mid;}//第三种情况-在数组的右侧else{right = mid;}}return rotateArray[mid];} };
转载于:https://www.cnblogs.com/maleyang/articles/7399567.html
06旋转数组的最小数字相关推荐
- 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 剑指offer:面试题11. 旋转数组的最小数字
题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...
- 剑指offer_第6题_旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 剑指 Offer 11. 旋转数组的最小数字 简单
剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...
- LeetCode-剑指 Offer 11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字 思路一:先排序,返回第一个数组值 class Solution {public:int minArray(vector<int>& n ...
- 剑指offer 11. 旋转数组的最小数字(很详细!)
剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...
- 算法练习day20——190411(重建二叉树、斐波那契数列、跳台阶、矩形覆盖、变态跳台阶、旋转数组的最小数字、矩阵中的路径)
1.重建二叉树 根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. preorder = [3,9,20,15,7].inorder = [9 ...
最新文章
- Maven3.x 插件开发入门
- css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?
- LeetCode 1216. 验证回文字符串 III(DP)
- flashAndPHP 简单交互
- 全球自动驾驶第一梯队“成团出道”,谁站 C 位?
- 招聘网站数百万条敏感数据泄露,简历、×××扫描件统统曝光
- 拓端tecdat|R语言中的copula GARCH模型拟合时间序列并模拟分析
- idea + tomcat中文乱码处理
- Python 多重共线性检验
- 2021全国特种设备-G3锅炉水处理模拟考试题库一[安考星]
- TOMCAT HTPPS
- 微信公众号怎么为用户提供文件下载功能
- 懒癌治疗仪 - 写在前面
- 网络工程师眼中的自动化运维
- windows 下安装软件乱码
- 在线流程图和思维导图开发技术详解(五)
- 中国为什么没有根域名服务器
- 笛卡尔积、除、(外)连接等重要关系代数求解方法 概述
- 2020蓝天杯论文评比系统_我所师生参加安徽省药理学会2020年学术年会
- 流畅的Python读书笔记