publicint(int[] num){ int begin = 0, end = num.length - 1; while (begin + 1 < end) { int mid = begin + (end - begin) / 2; int val = num[mid]; if (val < num[end]) { end = mid; } else { // the right part is not sorted begin = mid; } } if (num[begin] < num[end]) return num[begin]; else return num[end]; }
publicint(int[] nums){ if (nums == null || nums.length == 0) return0; int begin = 0, end = nums.length - 1; while (begin + 1 < end) { int mid = begin + (end - begin) / 2; int val = nums[mid]; if (val < nums[end]) { // right part is sorted end = mid; } elseif (val > nums[end]) { begin = mid; } else // if val == nums[end] --end; } if (nums[begin] < nums[end]) return nums[begin]; return nums[end];
近期评论