LeetCode-033-搜索旋转排序数组

给你一个整数数组 nums ,和一个整数 target 。

该整数数组原本是按升序排列,但输入时在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。

示例 1:

输入:nums = [4,5,6,7,0,1,2], target = 0
输出:4
示例 2:

输入:nums = [4,5,6,7,0,1,2], target = 3
输出:-1
示例 3:

输入:nums = [1], target = 0
输出:-1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array

解题思路
采用二分法的思想, 并结合旋转数组的特性, 在[left, mid]和[mid, right]中找出哪一段是递增的
并利用递增的特性判断目标数是否在该递增区间

每轮找出中间数值, 如果左端的数小于中间的数, 则该[left, mid]是递增区间
如果目标刚好在该递增区间内, 则区间右端指针往中间移动
不在该区间内则左端指针往中间移动
另一种情况就是递增区间在[mid, right]
如果目标刚好在该递增区间内, 则区间左端指针往中间移动
不在该区间则右端指针往中间移动
跳出循环后需要判断左边界的值是否等于目标值, 因为循环中更新查找区间时可能左右指针重叠然后跳出循环, 如果指针所指刚好是目标值, 则需要单独处理
代码

class Solution {
public int search(int[] nums, int target) {
// 左右指针
int i = 0, j = nums.length - 1;
while (i < j) {
// 中间指针
int mid = (i + j) >> 1;
// 中间数等于目标时返回
if (nums[mid] == target) {
return mid;
}
// 如果左端的数小于中间的数, 则该区间是递增区间
if (nums[i] <= nums[mid]) {
// 如果目标刚好在递增区间内
if (nums[i] <= target && target < nums[mid]) {
// 区间右端往中间移动
j = mid - 1;
} else { // 不在递增区间内则左端往中间移动
i = mid + 1;
}
} else { // 递增区间在右边
// 如果目标在递增区间内
if (nums[mid] < target && target <= nums[j]) {
i = mid + 1;
} else {
j = mid - 1;
}
}
}
return nums[i] == target ? i : -1;
}
}

http://www.gzslpzx.com/poser.php?911519.html
http://nd.fjmj.org.cn/uploadfile/2020/poser.php?911519.html
http://sz.fjmj.org.cn/uploadfile/2020/poser.php?911519.html
http://na.fjmj.org.cn/uploadfile/2020/poser.php?911519.html
http://zz.fjmj.org.cn/uploadfile/2020/poser.php?911519.html
http://np.fjmj.org.cn/uploadfile/2020/poser.php?911519.html
http://mdzz.itlun.cn/poser.php?911519.html
http://www.xalsh.com/poser.php?911519.html
http://www.gjtuofa.com/uploads/poser.php?911519.html
http://www.yqyy.net/poser.php?911519.html
http://www.bxysg.com/poser.asp?911519.html
http://www.linkcard.cn/poser.asp?911519.html
http://www.airber.com.cn/poser.asp?911519.html
http://www.milient.com/poser.asp?911519.html
http://www.moswe.com/poser.asp?911519.html
http://1798.rongbiz.net/poser.php?911519.html
http://bbs.6y.com.cn/poser.php?911519.html
http://game.6y.com.cn/poser.php?911519.html
http://www.hnalizs.com/poser.php?911519.html
http://www.hnhcnet.com/poser.php?911519.html
http://dxkj.designboom.cn/poser.php?911519.html
http://www.designboom.cn/poser.php?911519.html
http://www.zhjswhw.com/poser.php?911519.html
http://www.gdnhec.com/poser.php?911519.html
http://www.qqql.com.cn/poser.asp?911519.html
http://www.ogood.cn/poser.php?911519.html
http://www.lygwb.com/poser.php?911519.html
http://mzhihui.mulangcm.com/fw/poser.php?911519.html
http://www.ceht.com.cn/default.php?911519.html
http://www.aselock.com.cn/poser.asp?911519.html
http://www.spark-lock.com/poser.asp?911519.html
http://www.fsruijian.net/poser.php?911519.html
http://www.whbts.com/poser.asp?911519.html
http://www.xdmonitor.com/poser.asp?911519.html
http://m.cquedp.com/911519.html
http://cquedp.com/911519.html
http://mdzz.itlun.cn/911519.html
http://m.cntricycle.com/911519.html
http://www.cquedp.com/poser.php?911519.html
http://szgc.glodon.com/poser.php?911519.html
http://sz.glodon.com/poser.php?911519.html
http://www.gzslpzx.com/poser.php?313313.html
http://nd.fjmj.org.cn/uploadfile/2020/poser.php?313313.html
http://sz.fjmj.org.cn/uploadfile/2020/poser.php?313313.html
http://na.fjmj.org.cn/uploadfile/2020/poser.php?313313.html
http://zz.fjmj.org.cn/uploadfile/2020/poser.php?313313.html
http://np.fjmj.org.cn/uploadfile/2020/poser.php?313313.html
http://mdzz.itlun.cn/poser.php?313313.html
http://www.xalsh.com/poser.php?313313.html
http://www.gjtuofa.com/uploads/poser.php?313313.html
http://www.yqyy.net/poser.php?313313.html
http://www.bxysg.com/poser.asp?313313.html
http://www.linkcard.cn/poser.asp?313313.html
http://www.airber.com.cn/poser.asp?313313.html
http://www.milient.com/poser.asp?313313.html
http://www.moswe.com/poser.asp?313313.html
http://1798.rongbiz.net/poser.php?313313.html
http://bbs.6y.com.cn/poser.php?313313.html
http://game.6y.com.cn/poser.php?313313.html
http://www.hnalizs.com/poser.php?313313.html
http://www.hnhcnet.com/poser.php?313313.html
http://dxkj.designboom.cn/poser.php?313313.html
http://www.designboom.cn/poser.php?313313.html
http://www.zhjswhw.com/poser.php?313313.html
http://www.gdnhec.com/poser.php?313313.html
http://www.qqql.com.cn/poser.asp?313313.html
http://www.ogood.cn/poser.php?313313.html
http://www.lygwb.com/poser.php?313313.html
http://mzhihui.mulangcm.com/fw/poser.php?313313.html
http://www.ceht.com.cn/default.php?313313.html
http://www.aselock.com.cn/poser.asp?313313.html
http://www.spark-lock.com/poser.asp?313313.html
http://www.fsruijian.net/poser.php?313313.html
http://www.whbts.com/poser.asp?313313.html
http://www.xdmonitor.com/poser.asp?313313.html
http://m.cquedp.com/313313.html
http://cquedp.com/313313.html
http://mdzz.itlun.cn/313313.html
http://m.cntricycle.com/313313.html
http://www.cquedp.com/poser.php?313313.html
http://szgc.glodon.com/poser.php?313313.html
http://sz.glodon.com/poser.php?313313.html
http://www.gzslpzx.com/poser.php?391173.html
http://nd.fjmj.org.cn/uploadfile/2020/poser.php?391173.html
http://sz.fjmj.org.cn/uploadfile/2020/poser.php?391173.html
http://na.fjmj.org.cn/uploadfile/2020/poser.php?391173.html
http://zz.fjmj.org.cn/uploadfile/2020/poser.php?391173.html
http://np.fjmj.org.cn/uploadfile/2020/poser.php?391173.html
http://mdzz.itlun.cn/poser.php?391173.html
http://www.xalsh.com/poser.php?391173.html
http://www.gjtuofa.com/uploads/poser.php?391173.html
http://www.yqyy.net/poser.php?391173.html
http://www.bxysg.com/poser.asp?391173.html
http://www.linkcard.cn/poser.asp?391173.html
http://www.airber.com.cn/poser.asp?391173.html
http://www.milient.com/poser.asp?391173.html
http://www.moswe.com/poser.asp?391173.html
http://1798.rongbiz.net/poser.php?391173.html
http://bbs.6y.com.cn/poser.php?391173.html
http://game.6y.com.cn/poser.php?391173.html
http://www.hnalizs.com/poser.php?391173.html
http://www.hnhcnet.com/poser.php?391173.html
http://dxkj.designboom.cn/poser.php?391173.html
http://www.designboom.cn/poser.php?391173.html
http://www.zhjswhw.com/poser.php?391173.html
http://www.gdnhec.com/poser.php?391173.html
http://www.qqql.com.cn/poser.asp?391173.html
http://www.ogood.cn/poser.php?391173.html
http://www.lygwb.com/poser.php?391173.html
http://mzhihui.mulangcm.com/fw/poser.php?391173.html
http://www.ceht.com.cn/default.php?391173.html
http://www.aselock.com.cn/poser.asp?391173.html
http://www.spark-lock.com/poser.asp?391173.html
http://www.fsruijian.net/poser.php?391173.html
http://www.whbts.com/poser.asp?391173.html
http://www.xdmonitor.com/poser.asp?391173.html
http://m.cquedp.com/391173.html
http://cquedp.com/391173.html
http://mdzz.itlun.cn/391173.html
http://m.cntricycle.com/391173.html
http://www.cquedp.com/poser.php?391173.html
http://szgc.glodon.com/poser.php?391173.html
http://sz.glodon.com/poser.php?391173.html
http://www.gzslpzx.com/poser.php?915931.html
http://nd.fjmj.org.cn/uploadfile/2020/poser.php?915931.html
http://sz.fjmj.org.cn/uploadfile/2020/poser.php?915931.html
http://na.fjmj.org.cn/uploadfile/2020/poser.php?915931.html
http://zz.fjmj.org.cn/uploadfile/2020/poser.php?915931.html
http://np.fjmj.org.cn/uploadfile/2020/poser.php?915931.html
http://mdzz.itlun.cn/poser.php?915931.html
http://www.xalsh.com/poser.php?915931.html
http://www.gjtuofa.com/uploads/poser.php?915931.html
http://www.yqyy.net/po

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值