题解 | #在旋转过的有序数组中寻找目标值#

在旋转过的有序数组中寻找目标值

https://www.nowcoder.com/practice/87c0e7abcbda41e7963660fa7d020995

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param target int整型 
 * @return int整型
*/
func search(nums []int, target int) int {
	l := 0
	r := len(nums) - 1
	for l <= r {
		mid := (l + r) / 2
		if mid == 0 {
			if mid+1 < len(nums) && nums[mid] < nums[mid+1] {
				r = mid - 1
			} else {
				l = mid + 1
			}
		} else {
			if nums[mid]-nums[0] > 0 {
				l = mid + 1
			} else {
				r = mid - 1
			}
		}

	}
	ll := 0
	rr := l - 1
	for ll <= rr {
		mid := (ll + rr) / 2
		if nums[mid] == target {
			return mid
		} else if nums[mid] < target {
			ll = mid + 1
		} else {
			rr = mid - 1
		}
	}
	ll = l
	rr = len(nums) - 1
	for ll <= rr {
		mid := (ll + rr) / 2
		if nums[mid] == target {
			return mid
		} else if nums[mid] < target {
			ll = mid + 1
		} else {
			rr = mid - 1
		}
	}
	return -1
	// write code here
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务