[LeetCode]Search in Rotated Sorted Array
发布日期:2021-11-22 02:49:00 浏览次数:2 分类:技术文章

本文共 884 字,大约阅读时间需要 2 分钟。

Suppose a sorted array 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.

题解:数组是一个旋转有序的数组,查找target的位置。采用的二分查找。

先求出nums[mid],用nums[mid]与nums[left]或者nums[right]作比较,我采用与右边作比较(随意取一边),如果nums[mid]<nums[right],说明mid--->right  是递增的,否则是递减的。再次判断target在nums[left]~nums[mid]与nums[mid]~nums[right]这两个区间的哪一个。nums[mid]>nums[right]情况,同理。

code:

public class Solution {    public int search(int[] nums, int target) {        if(nums == null || nums.length == 0)			return -1;		int mid=0,left = 0, right = nums.length-1;		while(left<=right){						mid = left+(right-left)/2;			if(nums[mid] == target){								return mid;			}else if(nums[mid]>nums[right]){ //left								if(nums[left]<= target && target

参考:

转载地址:https://blog.csdn.net/zxdfc/article/details/48786661 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:[LeetCode]Remove Duplicates from Sorted Array II
下一篇:SpringMVC中的自定义视图使用BeanNameViewResolver出现了不能使用的错误解决

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月08日 12时30分39秒