【二分法】旋转数组的最小数字

求解代码

对旋转数组来说,右子数组的数值整体更小,左子数组的数值整体更大。

数组的最小值一定是右子数组的第一个元素。

java 复制代码
public int minNumberInRotateArray (int[] nums) {
        if(nums.length==0){
			return 0;
		}

		int i=0;
		int j=nums.length-1;

		while(i<j){
			int mid = i+((j-i)>>1);
			if(nums[mid]>nums[j]){
				i=mid+1;
			}else if(nums[mid]<nums[j]){
				j=mid;
			}else{
				j--;
			}
		}

		return nums[i];
    }
相关推荐
2401_857683545 分钟前
C++中的原型模式
开发语言·c++·算法
s1hiyu14 分钟前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)15 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
We་ct15 分钟前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
星火开发设计20 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
mit6.82444 分钟前
dijk|tire+floyd+dp %
算法
独自破碎E1 小时前
【总和拆分 + 双变量遍历】LCR_012_寻找数组的中心下标
数据结构·算法
WBluuue1 小时前
Codeforces 1076 Div3(ABCDEFG)
c++·算法
u0109272711 小时前
模板编译期排序算法
开发语言·c++·算法
GIS瞧葩菜1 小时前
Cesium 轴拖拽 + 旋转圈拖拽 核心数学知识
人工智能·算法·机器学习