zoukankan      html  css  js  c++  java
  • 剑指OFFER 旋转数组的最小数字

    剑指OFFER 旋转数组的最小数字

    暴力解法

    直接一次扫描找出最小元素,时间效率比较低,需要改进

    class Solution {
    public:
        int minNumberInRotateArray(vector<int> arr) {
            int min = INT_MAX;
            for(int i=0;i<arr.size();i++)
            {
                if(arr[i]<min)min = arr[i];
            }
            return min;
        }
    };
    

    二分查找法

    class Solution {
    public:
        int minNumberInRotateArray(vector<int> arr) {
            int left = 0;
            int right = arr.size()-1;
            int mid = (left+right)/2;
            while(left != mid)
            {
                if(arr[left]>arr[mid]){
                    right = mid;
                }else if(arr[mid]>arr[right]){
                    left = mid;
                }
                mid =  (left+right)/2;
            }
            return arr[right];
        }
    };
    

    发现提交测试的时间还是一样的,可能是测评系统的问题吧,使用了二分查找多少都会快一些吧

  • 相关阅读:
    转载一篇 Linux 命令总结
    Linux 常用命令学习
    frp 使用
    Anaconda使用记录
    Linux 学习
    lnmp下django学习
    lnmp安装学习
    学习DHT内容
    pyqt5配置
    MyBatisPlus 常用知识点总结
  • 原文地址:https://www.cnblogs.com/virgildevil/p/12229989.html
Copyright © 2011-2022 走看看