zoukankan      html  css  js  c++  java
  • 剑指offer系列3:旋转数组的最小数字

    第8题

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 
     5 class Solution {
     6 public:
     7     int minNumberInRotateArray(vector<int> rotateArray) {
     8         if (rotateArray.empty() == true)
     9         {
    10             return 0;
    11         }
    12         int low = 0,mid=0,min=0;
    13         int high = rotateArray.size()-1;
    14         if (rotateArray[low] < rotateArray[high])
    15         {
    16             return rotateArray[low];
    17         }
    18         if (rotateArray[low] == rotateArray[high])
    19         {
    20             min = rotateArray[low];
    21             for (int i = 0; i < high - 1; i++)
    22             {
    23                 if (rotateArray[i] < min)
    24                 {
    25                     min = rotateArray[i];
    26                 }
    27             }
    28             return min;
    29         }
    30         while (low + 1 != high)
    31         {
    32             mid = low+(high-low) / 2;
    33             if (rotateArray[low] <= rotateArray[mid])
    34             {
    35                 low = mid;
    36             }
    37             else
    38             {
    39                 high = mid;
    40             }
    41         }
    42         return (rotateArray[low] > rotateArray[high]) ? rotateArray[high] : rotateArray[low];
    43     }
    44 };
    45 int main()
    46 {
    47     vector<int> test = {1,0,1,1,1 };
    48     Solution so;
    49     cout << so.minNumberInRotateArray(test) << endl;
    50     return 0;
    51 }

    旋转数组找出最小的数,比较简单,各种情况考虑到就行。

  • 相关阅读:
    21-while里的break简单用法
    20-使用while循环求从1累加至100的值
    19-random猜数
    18-random猜数,直到正确。
    17-简化后的石头剪刀布
    16-if实现石头剪刀布
    生成随机数
    转换数字的进制(Integer、Long)
    数字的舍入
    格式化数字
  • 原文地址:https://www.cnblogs.com/neverland0718/p/10882059.html
Copyright © 2011-2022 走看看