zoukankan      html  css  js  c++  java
  • leetcode33 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 class Solution {
     2 public:
     3     int search(vector<int>& nums, int target) {
     4         int a=0,b=nums.size()-1;
     5         while(a<=b)
     6         {
     7             int m=a+(b-a)/2;
     8             if(nums[m]==target)
     9                 return m;
    10             if(nums[m]<nums[a])
    11             {
    12                 if(nums[a]<=target)
    13                     b=m-1;
    14                 else
    15                     a++;
    16             }
    17             else
    18             {
    19                 if(nums[a]>target)
    20                     a=m+1;
    21                 else if(nums[a]==target)
    22                     return a;
    23                 else
    24                     a++;
    25             }
    26             
    27         }
    28         return -1;
    29     }
    30 };
    View Code
  • 相关阅读:
    WindowsForm:百科
    App-应用程式:百科
    ASP.NET:目录
    ASP.NET:百科
    操作平台:.NET
    DB-触发器:百科
    DB-DatabaseLink:百科
    5090 众数
    计数排序
    归并排序
  • 原文地址:https://www.cnblogs.com/jsir2016bky/p/5105782.html
Copyright © 2011-2022 走看看