题解 | #旋转排列之找出最矮的牛#
旋转排列之找出最矮的牛
https://www.nowcoder.com/practice/ea91217beb83444aa324b86bfab4a952
知识点:二分
思路:题意,降序数组旋转后,查找某个数据,如果是升序或者降序,我们可以直接使用二分查找
因为,中间数mid,可以根据左右边界进行判断,
但其实这里数组旋转后,性质不变,变成了两个降序数组,比如54321 76
因此,我们只需要判断mid和最后一个数字,看其属于两个降序数组,
然后就变成了最开始的单数组降序二分查找
编程语言:java
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param heights int整型一维数组
* @return int整型
*/
public int findMin (int[] heights) {
// write code here
int l = 0,r = heights.length - 1;
while (l < r) {
int mid = (r +l) >>1;
if(heights[mid] < heights[r]) {
l = mid + 1;
} else if (heights[mid] > heights[r]) {
r = mid;
}else{
l++;
}
}
return heights[l-1];
}
}
安克创新 Anker公司福利 743人发布

