zoukankan      html  css  js  c++  java
  • leetcode117:search-rotated-sorted-array

    题目描述

    给出一个转动过的有序数组,你事先不知道该数组转动了多少
    (例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2).
    在数组中搜索给出的目标值,如果能在数组中找到,返回它的索引,否则返回-1。
    假设数组中不存在重复项。

    Suppose a sorted array is rotated at some pivot unknown to you beforehand.

    (i.e.,0 1 2 4 5 6 7might become4 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

    输入

    复制
    [1],0

    输出

    复制
    -1
    

    class Solution {
    public:
        int search(int A[], int n, int target) {
            if(A == nullptr||n==0)
                return -1;
            int left = 0;
            int right = n-1;
            while(left<=right){
                int mid = left + (right - left)/2;
                if(A[mid] == target)
                    return mid;
                if(A[left] <= A[mid]){
                    if(A[left]<=target&&A[mid]>target)
                        right = mid-1;
                    else
                        left = mid+1;
                }
                else{
                    if(A[mid]<target&&A[right]>=target)
                        left = mid+1;
                    else
                        right = mid-1;
                }
            }
            return -1;
        }
    };
  • 相关阅读:
    【Eolinker使用】接口测试--如何解决接口重定向
    ExtJS按钮
    Redis-消费模式
    Redis笔记教程
    C++中this指针的用法
    C — 对C语言的认识
    你还在迷茫什么
    2019-2020-1 20199324《Linux内核原理与分析》第四周作业
    2019-2020-1 20199324《Linux内核原理与分析》第三周作业
    2019-2020-1 20199324《Linux内核原理与分析》第二周作业
  • 原文地址:https://www.cnblogs.com/hrnn/p/13415805.html
Copyright © 2011-2022 走看看