leetcode 154.Find Minimum in Rotated Sorted Array II

来源:互联网 发布:百度贴吧数据统计 编辑:程序博客网 时间:2024/06/05 08:54
public int findMin(int[] num) { 3         if (num == null || num.length == 0) { 4             return 0; 5         } 6          7         int len = num.length; 8         if (len == 1) { 9             return num[0];10         } else if (len == 2) {11             return Math.min(num[0], num[1]);12         }13         14         int left = 0;15         int right = len - 1;16         17         while (left < right - 1) {18             int mid = left + (right - left) / 2;19             // In this case, the array is sorted.20             // 这一句很重要,因为我们移除一些元素后,可能会使整个数组变得有序...21             if (num[left] < num[right]) {22                 return num[left];23             }24             25             // left side is sorted. CUT the left side.26             if (num[mid] > num[left]) {27                 left = mid;28             // left side is unsorted, right side is sorted. CUT the right side.29             } else if (num[mid] < num[left]) {30                 right = mid;31             } else {32                 left++;33             }34         }35         36         return Math.min(num[left], num[right]);        37     }
阅读全文
0 0
原创粉丝点击