zoukankan      html  css  js  c++  java
  • leetcode@ [33] Search in Rotated Sorted Array

    https://leetcode.com/problems/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.

    class Solution {
    public:
        int search(vector<int>& nums, int target) {
            if(nums.size() == 0) return -1;
            if(nums.size() == 1) return target==nums[0]? 0: -1;
            
            int low = 0, high = nums.size()-1, breakPoint = nums.size()-1;
            while(high - low > 1) {
                int mid = (low + high)/2;
                if(nums[mid] > nums[high]) low = mid;
                else high = mid;
            }
            breakPoint = low;
            cout<<breakPoint<<endl;
            
            low = 0, high = breakPoint;
            while(low <= high) {
                int mid = (low + high)/2;
                if(nums[mid] == target) return mid;
                else if(nums[mid] < target) low = mid+1;
                else high = mid-1;
            }
            
            low = breakPoint+1; high = nums.size()-1;
            while(low <= high) {
                int mid = (low + high)/2;
                if(nums[mid] == target) return mid;
                else if(nums[mid] < target) low = mid+1;
                else high = mid-1;
            }
            
            return -1;
        }
    };
  • 相关阅读:
    html+css动态篇
    html+css定位篇
    首页的css
    display详细说明
    html+css 布局篇
    html+css杂记
    JS与ES的关系
    H5本地存储
    JavaScript面向对象
    JavaScript执行上下文
  • 原文地址:https://www.cnblogs.com/fu11211129/p/4944866.html
Copyright © 2011-2022 走看看