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

    本题考察的是查找,需要注意的是数组中有相同数字的特例,如果不能很好地处理这些特例,就很难写出让人满意的完美代码。

    C++版本

    #include <iostream>
    #include <vector>
    using namespace std;
    
    int minInOrder(vector<int> rotateArray, int index1, int index2){
        int result = rotateArray[index1];
        for(int i = index1 + 1; i <= index2; i++){
            if(result > rotateArray[i]){
                result = rotateArray[i];
            }
        }
        return result;
    }
    
    int minNumberInRotateArray(vector<int> rotateArray){
        int index1 = 0;
        int index2 = rotateArray.size()-1;
        int indexMid = index1;
        while(rotateArray[index1] >= rotateArray[index2]){
            if(index2 - index1 == 1){
                indexMid = index2;
                break;
            }
            indexMid = (index1 + index2)/2;
            if(rotateArray[index1]==rotateArray[index2]&&rotateArray[indexMid]==rotateArray[index1])
                return minInOrder(rotateArray, index1, index2);
            if(rotateArray[indexMid] >= rotateArray[index1]){
                index1 = indexMid;
            }
            else if(rotateArray[indexMid] <= rotateArray[index2]){
                index2 = indexMid;
            }
        }
        return rotateArray[indexMid];
    }
    
    
    int main(){
        int a[5] = {1,2,3,4,5};
        cout<<&a[2]<<" "<<&a[3]<<endl;
        cout<<Fibonacci(6)<<endl;
        return 0;
    }
    
    
  • 相关阅读:
    错误记录 git pull
    关于file_operations结构体
    20180911-Java实例01
    20180910-Java 文档注释
    20180907-Java Applet基础
    Elastic Stack生态圈
    关于我和本博客
    雨后的春日清晨
    charles 安装https证书
    css3不同文字大小底部对齐的完美解决方案
  • 原文地址:https://www.cnblogs.com/flyingrun/p/13324864.html
Copyright © 2011-2022 走看看