首页 > 编程语言 > 详细

旋转数组的最小元素

时间:2019-11-14 00:58:25      阅读:122      评论:0      收藏:0      [点我收藏+]

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。

例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0

 1 namespace JianZhiOffer
 2 {
 3     class RotateArray
 4     {
 5         public int minNumberInRotateArray(int[] rotateArray)
 6         {
 7             // write code here
 8             if(rotateArray == null || rotateArray.Length == 0)
 9             {
10                 return 0;
11             }
12 
13             int start = 0;
14             int end = rotateArray.Length - 1;
15 
16             while (start < end)
17             {
18                 int mid = start + (end - start) / 2;
19 
20                 // 如果中间的数大于最后一个数,则最小数位于后半部分
21                 if (rotateArray[mid] > rotateArray[end])
22                 {
23                     start = mid + 1;
24                 }
25                 else
26                 {
27                     end = mid;
28                 }
29             }
30             return rotateArray[start];
31         }
32     }
33 }

 

 

旋转数组的最小元素

原文:https://www.cnblogs.com/xiaolongren/p/11842431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!