题目
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
知识点
数组、二分查找
思路
最开始看这道题时纠结了很久题意,没懂考的点是什么,后来看了题解才知道,可以用暴力做出来,也可以根据题目给的规律用二分查找法做出来。
方一、暴力解出
方二、利用二分查找以及题目特性,已知旋转后可分为两个非递减数组;
- 当mid>lo时,说明此时mid在左数组,lo改为mid+1;
- 当mid<hi时,则说明在右数组,hi改为mid;
- 当midlo且hi时,lo++;
代码
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
if