zoukankan      html  css  js  c++  java
  • 剑指offer面试题8:旋转数组的最小数字

    直接贴代码:

    #include<iostream>
    using namespace std;
    int minInorder(int numbers[],int index1,int index2);
    int min(int numbers[],int length)
    {
    	if(length<=0)
    		throw new std::exception("Invalid Input");
    	int index1=0;
    	int index2=length-1;
    	int mid=index1;
    	while(numbers[index1]>=numbers[index2])
    	{
    		if(index2-index1==1)
    		{
    		    mid=index2;
    			break;
    		}
    		mid=(index1+index2)/2;
    		if(numbers[index1]==numbers[index2]&&numbers[mid]==numbers[index1])
    			return minInorder(numbers,index1,index2);
    		if(numbers[mid]>=numbers[index1])index1=mid;
    		else if(numbers[mid]<=numbers[index2])index2=mid;		
    	}
    	return numbers[mid];
    }
    int minInorder(int numbers[],int index1,int index2)
    {
    	int result=numbers[index1];
    	for(int i=index1+1;i<=index2;i++)
    	{
    		if(result>numbers[i])
    		{
    			result=numbers[i];
    		}
    	}
    	return result;
    }
    int main()
    {
    	int length;int numbers[100];
    	while(cin>>length)
    	{
    		for(int i=0;i<length;i++)
    		{
    			cin>>numbers[i];
    		}
    		cout<<min(numbers,length)<<endl;
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    图片懒加载
    浅谈javascript的函数节流
    js字符串常用方法详解
    js数组详解
    thinkphp3.2 批量添加数据
    openssl证书及配置
    手机访问PC端
    mui框架(三)
    mui框架(二)
    mui框架(一)
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/2843229.html
Copyright © 2011-2022 走看看