链接
思路
1、暴力排序
先将数组排序,然后输出第一个元素即最小数
2、遍历
遍历题目给的数组,由于提示规定数组是将一个递增的数组旋转所得,则在遍历途中将最小值设置为数组的第一个元素,若遍历过程中遇到比最小值小的数,则说明这个数后的数都比其大,即该数为最小值
同时最小值不用进行更新,更新反而导致错误
1、最小值为第一个数,若该数为最小值,则遍历完成后返回该数
2、若后续碰到第一个比其小的数,则该数为最小数,因为后面的数都比他大
3、后续都比他小(不可能出现),否则会导致数组不是有递增数组旋转而来
代码
1、暴力排序
class Solution {
public int minArray(int[] numbers)
{
Arrays.sort(numbers);
return numbers[0];
}
}
2、遍历
class Solution {
public int minArray(int[] numbers)
{
int min = numbers[0];
for (int number : numbers)
{
if (number < min)
{
return number;
}
}
return min;
}
}