剑指offer六:旋转数组的最小数字
题目描述
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
package com.jianzhioffer;public class RotateArray {public static void main(String[] args){int[] array = {3,4,5,0,2};int n = RotateArray.minNumberInRotateArray(array);System.out.println(n);n = RotateArray.minNumberInRotateArray2(array);System.out.println(n);}// 我的思路public static int minNumberInRotateArray(int [] array) {int len = array.length;int min=0;boolean flag = false;for(int i=len-1;i>0;i--){int j = i - 1;if(array[j]>array[i]){flag = true;min = array[i];}}if(!flag){min = array[0];}return min;}// 别人的思路public static int minNumberInRotateArray2(int [] array) {if (array == null || array.length == 0)return 0;int left = 0;int right = array.length - 1;int mid = 0;while (array[left] >= array[right]) {if(right - left <= 1) {mid = right;break;}mid = (left + right)/2;if (array[left] == array[mid] && array[mid] == array[right]) {if (array[left+1] != array[right-1]) {mid = array[left+1] < array[right-1] ? left+1:right-1;} else {left++;right--;}} else {if (array[left] <= array[mid]) {left = mid;} else {right = mid;}}}return array[mid];}
}
剑指offer六:旋转数组的最小数字相关推荐
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 剑指 Offer 11. 旋转数组的最小数字 简单
剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...
- 剑指offer 11. 旋转数组的最小数字(很详细!)
剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
[LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...
- 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字
目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...
- 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...
- 剑指offer——11.旋转数组的最小数字
题目: 题1:实现快速排序 题2:年龄排序问题. 题3:旋转数组的最小数字 知识点: 快速排序算法,参考:https://blog.csdn.net/shujuelin/article/details ...
- 剑指offer:旋转数组的最小数字
题目 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
最新文章
- Listview点击事件
- 小马智行Pony.ai 2020校招正式开启
- 对Spring创建对象的思考
- 8-1 回溯法实验报告 (15 分)(思路+详解)
- 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
- magento 在产品页添加评论 Add Review Form in Magento Product View Page
- 学者:比特币暴涨有合理性但仍应警惕其风险
- LaunchImage命名与AppIcon命名(ios设置 启动图片和AppIcon图片)
- 乐高积木格斗机器人组装拼图_玩积木、组装机器人的多重好处,你一定想不到!(认识机器人)...
- 开启xmp1还是2_原神风魔龙技能打法详细教程攻略 奇货匣开启次数是否保留会刷新吗...
- sqlplus命令大全
- C#调用海康威视人脸识别接口
- asp使用js时间控件,实现下拉日历 解决UTF-8和GB2312的编码问题
- cibersortx怎么用_如何使用Xbrowser
- 转载_Feedforward ANC 主动降噪原理
- 神经网络实现鸢尾花分类(Tensorflow2.0)
- Job Shop Schedule 生产调度问题 (一) 简介
- 比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!
- 二本考生考研复试331分逆袭390分上岸,被传教务处长之子?校方回应!
- 端口映射工具 porttunnel