您的位置:首页 > Web前端

剑指offer(九)之旋转数组的最小数字

2016-04-17 13:51 567 查看
题目描述

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

思路分析:1.直接使用冒泡排序,按从小到大排序



代码:

import java.util.ArrayList;

public class Solution {

public int minNumberInRotateArray(int [] array) {

int len=array.length;

int temp=0;

if(len==0){

return 0;

}

for(int i=0;i<len-1;i++){

for(int j=0;j<len-1-i;j++){

if(array[j]>array[j+1]){

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

}

}

return array[0];

}

}


2.直接找到最小元素,然后返回;先寻找分界点,找到第一个元素小于前一个元素的值,然后返回,即可。

代码:

import java.util.ArrayList;

public class Solution {

public int minNumberInRotateArray(int [] array) {

int len=array.length;

if(len==0){

return 0;

}

for(int i=0;i<len-1;i++){

if(array[i+1]<array[i]){

array[0]=array[i+1];

break;

}

}

return array[0];

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: