题目描述

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{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六:旋转数组的最小数字相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  2. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  3. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

  4. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

  5. 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...

  6. 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...

  7. 剑指offer——11.旋转数组的最小数字

    题目: 题1:实现快速排序 题2:年龄排序问题. 题3:旋转数组的最小数字 知识点: 快速排序算法,参考:https://blog.csdn.net/shujuelin/article/details ...

  8. 剑指offer:旋转数组的最小数字

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

  9. 剑指offer——06旋转数组的最小数字(Python3)

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

最新文章

  1. Listview点击事件
  2. 小马智行Pony.ai 2020校招正式开启
  3. 对Spring创建对象的思考
  4. 8-1 回溯法实验报告 (15 分)(思路+详解)
  5. 论文浅尝 - COLING2020 | 一种用于跨语言实体对齐的上下文对齐强化跨图谱注意力网络...
  6. magento 在产品页添加评论 Add Review Form in Magento Product View Page
  7. 学者:比特币暴涨有合理性但仍应警惕其风险
  8. LaunchImage命名与AppIcon命名(ios设置 启动图片和AppIcon图片)
  9. 乐高积木格斗机器人组装拼图_玩积木、组装机器人的多重好处,你一定想不到!(认识机器人)...
  10. 开启xmp1还是2_原神风魔龙技能打法详细教程攻略 奇货匣开启次数是否保留会刷新吗...
  11. sqlplus命令大全
  12. C#调用海康威视人脸识别接口
  13. asp使用js时间控件,实现下拉日历 解决UTF-8和GB2312的编码问题
  14. cibersortx怎么用_如何使用Xbrowser
  15. 转载_Feedforward ANC 主动降噪原理
  16. 神经网络实现鸢尾花分类(Tensorflow2.0)
  17. Job Shop Schedule 生产调度问题 (一) 简介
  18. 比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!
  19. 二本考生考研复试331分逆袭390分上岸,被传教务处长之子?校方回应!
  20. 端口映射工具 porttunnel

热门文章

  1. form + iframe 获取表单提交后返回的数据
  2. BZOJ 1856: [Scoi2010]字符串 [Catalan数]
  3. Cocos2d-x游戏中默认的AndroidManifest.xml的解析
  4. EM 期望最大化算法
  5. 和 Gmail 先生面对面
  6. 【python初识】列表与函数模块
  7. RabbitMQ学习总结(3)——入门实例教程详解
  8. 区块链教程Fabric1.0源代码分析Chaincode(链码)体系总结
  9. Selenium IDE安装
  10. SQL Server 文件路径