算法打卡第十三天 牛客BM21 旋转数组的最小数字

        今天是秋招预备队算法篇打卡第十三天,这两天对算法有点摆,没咋花时间写,今天的题目数量就随缘吧

        问题:旋转数组的最小数字

        描述:

算法打卡第十三天 牛客BM21 旋转数组的最小数字_第1张图片

         解题方法:

        1、暴力遍历法

        直接遍历整个数组,每次取数组元素中当前的最小值,那么最终就能得到整个数组的最小值了

        时间复杂度:O(n),遍历整个数组,数组长度为n

        空间复杂度:O(1),常数个辅助空间

        2、二分法  

        这种二分查找难就难在,arr[mid]跟谁比
        我们的目的是:当进行一次比较时,一定能够确定答案在mid的某一侧。一次比较为 arr[mid]跟谁比的问题。
        一般的比较原则有:

  • 如果有目标值target,那么直接让arr[mid] 和 target 比较即可。
  • 如果没有目标值,一般可以考虑 端点

        这里我们把target 看作是右端点,来进行分析,那就要分析以下三种情况,看是否可以达到上述的目标。

  1. 情况1,a

你可能感兴趣的:(算法,java,算法)