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

    旋转数组的概念:把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转。例如{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int MinNum(int* numbers, int length)
     5  {
     6      if(numbers == NULL || length <= 0)
     7      {
     8          cout<<"invalid input" <<endl;
     9          exit(-1)    ;
    10     }
    11 
    12      int start = 0 ;
    13      int end = length - 1;
    14      int middle = start;
    15 
    16      while(numbers[start] >= numbers[end])
    17      {
    18          if(end -start == 1)
    19          {
    20              middle = end;
    21              break;
    22          }
    23 
    24          middle = (start + end) / 2 ;
    25 
    26          if(numbers[start] == numbers[end] && numbers[middle] == numbers[start])
    27          {
    28              int result = numbers[start];
    29              for(int i = start + 1; i<= end ; ++i)
    30              {
    31                  if(numbers[i] < result)
    32                      result = numbers[i];
    33              }
    34              return result;
    35          }
    36 
    37          if(numbers[middle] >= numbers[start])
    38              start = middle;
    39          else if(numbers[middle] <= numbers[end])
    40              end = middle;
    41      }
    42 
    43      return numbers[middle];
    44  }
    45 
    46  int main()
    47  {
    48      int array[] = {1, 0, 1, 1, 1};
    49      int length = sizeof(array)/ sizeof(int);
    50 
    51      int minNum = MinNum(array, length);
    52 
    53      cout << "最小的数的值: " << minNum << endl;
    54 
    55      return 0;
    56  }

  • 相关阅读:
    使用Fiddler抓包(手机端app)
    IE浏览器跳转url正常,谷歌浏览器跳转报403状态
    书签
    工作记录
    MySQL索引、锁和优化
    Pytorch-张量的创建与使用方法
    网络请求
    数据挖掘的五大流程
    uni开启下拉刷新
    uni-app中的tabBar配置
  • 原文地址:https://www.cnblogs.com/sankexin/p/5614572.html
Copyright © 2011-2022 走看看