博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 81. 搜索旋转排序数组 II(头条)
阅读量:2488 次
发布时间:2019-05-11

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

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。

编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。

示例 1:

输入: nums = [2,5,6,0,0,1,2], target = 0

输出: true

示例 2:

输入: nums = [2,5,6,0,0,1,2], target = 3

输出: false

public class LC81 {    public static void main(String[] args) {        int[] num={1,3};        int target=4;        System.out.println(search(num,target));    }    //方法1:先找到旋转的分界点,然后对这两边分别进行二分查找    public static boolean search(int[] nums, int target) {        if(nums==null||nums.length==0)            return false;                int i=0;        while (i<(nums.length-1)&&nums[i]
target){ j=mid-1; }else{ i=mid+1; } } return false; } //方法2:二分查找 public static boolean search2(int[] nums, int target) { if(nums==null||nums.length==0) return false; int i=0,j=nums.length-1; while (i<=j){ int mid=i+(j-i)/2; if(nums[mid]==target) return true; // 当left,middle,right三个值相同默认为左边有序了,但是111101 其中0可能出现在左边也可能出现在右边,所以只能遍历 if(nums[i]==nums[mid]&&nums[j]==nums[mid]){ i++;j--; }else if(nums[i]<=nums[mid]){//如果左边有序 if(nums[i]<=target&&target

转载地址:http://cgbrb.baihongyu.com/

你可能感兴趣的文章
中低频量化交易策略研发01_引言
查看>>
中低频量化交易策略研发06_推进的择时策略
查看>>
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>
期货市场技术分析02_趋势的基本概念
查看>>
期货市场技术分析03_主要反转形态
查看>>
期货市场技术分析04_持续形态
查看>>
期货市场技术分析05_交易量和持仓兴趣
查看>>
TB交易开拓者入门教程
查看>>
TB创建公式应用dll失败 请检查用户权限,终极解决方案
查看>>
python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
查看>>
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>
满屏的指标?删了吧,手把手教你裸 K 交易!
查看>>
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>