首页 > 其他 > 详细

leetcode117search-in-rotated-sorted-array

时间:2020-08-01 12:11:35      阅读:89      评论:0      收藏:0      [点我收藏+]

题目描述

给出一个转动过的有序数组,你事先不知道该数组转动了多少
(例如,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:
    bool search(int A[], int n, int target) {
        for(int i = 0;i<n;i++)
            {
            if(A[i]==target)
                return true;
        }
        return false;
    }
};

class Solution {
public:
    bool search(int A[], int n, int target) {
      int low = 0, high = n - 1;
        while(low <= high){
            int mid = (low + high) / 2;
            if(A[mid] == target)
                return true;
            if(A[low] == A[mid] && A[mid] == A[high]){
                low++;
                high--;
            }else if(A[low] <= A[mid]){  //left sorted
                if(A[low] <= target && A[mid] > target){
                    high = mid - 1;
                }
                else
                    low = mid + 1;
            }else if(A[mid] <= A[high]){
                if(A[mid] < target && A[high] >= target){
                    low = mid + 1;
                }
                else
                    high = mid - 1;
            }
                  
        }
        return false;  
    }
};

#
#
# @param A int整型一维数组
# @param target int整型
# @return bool布尔型
#
class Solution:
    def search(self , A , target ):
        # write code here
        return target in A


leetcode117search-in-rotated-sorted-array

原文:https://www.cnblogs.com/hrnn/p/13413399.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!