zoukankan      html  css  js  c++  java
  • 33-Search in Rotated Sorted Array

    题目:

    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.

    分析:

    1.mid的位置判断,若A[mid]>=A[left],则mid在左边区域;若A[mid]<A[left],则mid在右边区域

    2.如果mid在左边区域,当A[left]<=target<A[mid],right=mid-1;

    3.如果mid在右边区域,当A[mid]<target<=A[right],left=mid+1;

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

      

  • 相关阅读:
    MySQL decimal unsigned 更新负数不报错却为0
    centos 安装jdk
    CentOS7安装docker
    Cron 时间元素
    PHPStorm
    日志习惯
    HTTP幂等性
    navicat for mysql 10.1.7注册码
    localStorage、sessionStorages 使用
    FreePascal
  • 原文地址:https://www.cnblogs.com/hwu2014/p/4423251.html
Copyright © 2011-2022 走看看