TypechoJoeTheme

IT技术分享

统计

[LeetCode 33] Search in Rotated Sorted Array [Java]

2018-01-23
/
0 评论
/
700 阅读
/
正在检测是否收录...
01/23

1. Description

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

2. Example

4 5 6 7 0 1 2
given target 0, return 4
given target 6, return 2

3. Code


public class LeetCode0033 { public int search(int[] nums, int target) { if (nums == null || nums.length == 0) { return -1; } int left = 0; int right = nums.length - 1; while (left <= right) { int mid = left + ((right - left) >> 1); if (nums[mid] == target) { return mid; } else if (nums[left] <= nums[mid]) { if (nums[left] <= target && target < nums[mid]) { right = mid - 1; } else { left = mid + 1; } } else { if (nums[mid] < target && target <= nums[right]) { left = mid + 1; } else { right = mid - 1; } } } return -1; } public static void main(String[] args) { LeetCode0033 leetcode = new LeetCode0033(); System.out.println(leetcode.search(new int[] { 4, 5, 6, 7, 0, 1, 2 }, 0)); } }
Array
朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/1394/(转载时请注明本文出处及文章链接)