博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-旋转数组的最小数字
阅读量:3959 次
发布时间:2019-05-24

本文共 734 字,大约阅读时间需要 2 分钟。

题目描述

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

import java.util.*;public class Solution {
public int minNumberInRotateArray(int [] array) {
int l = 0; int h = array.length - 1; while(l < h) {
int m = (l + h) / 2; if(array[m] > array[h]) {
//此范围为旋转数组 //比如5和1 array[l]=5 array[m]=5 array[h]=1 //现在l已经等于m,你在让l=m就会出现死循环报错 l = m + 1; }else if(array[m] < array[h]) {
//此范围是顺序数组,旋转数组在另一端 //比如1和5 array[l]=1 array[m]=1 array[h]=5 //此时l=m 如果你让h=m-1 则h

分析:最小值总是出现在旋转数组的位置,所以查找总向旋转数组逼近,局部有序可以使用二分查找

转载地址:http://nvhzi.baihongyu.com/

你可能感兴趣的文章
autoit3 ie.au3 函数之——_IEDocInsertHTML
查看>>
autoit3 ie.au3 函数之——_IEDocWriteHTML
查看>>
autoit3 ie.au3 函数之——_IEErrorHandlerDeRegister & _IEErrorHandlerRegister
查看>>
autoit3 ie.au3 函数之——_IEErrorNotify
查看>>
autoit3 ie.au3 函数之——_IEFormElementCheckBoxSelect & _IEFormGetObjByName
查看>>
autoit3 ie.au3 函数之——_IEFormElementGetCollection & _IEFormGetCollection
查看>>
watir测试报告(一)
查看>>
watir测试报告(二)
查看>>
watir——上传文件
查看>>
Python之读取TXT文件的三种方法
查看>>
Python之操作MySQL数据库
查看>>
watir学习之—如何遍历页面所有的超链接
查看>>
ruby之——安装gem提示:Please update your PATH to include build tools or download the DevKit
查看>>
Selenium-Webdriver系列教程(一)————快速开始
查看>>
Selenium-Webdriver系列教程(2)———浏览器的简单操作
查看>>
Selenium-webdriver系列教程(3)———如何执行一段js脚本
查看>>
Selenium-webdriver系列教程(4)——如何定位测试元素
查看>>
Selenium-webdriver系列教程(5)———如何定位frame中的元素
查看>>
Selenium-webdriver系列教程(6)———如何捕获弹出窗口
查看>>
Eclipse(Windowns XP)下搭建Android开发环境——简介
查看>>