LintCode-搜尋旋轉排序陣列
假設有一個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定一個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。
你可以假設陣列中不存在重複的元素。
您在真實的面試中是否遇到過這個題? Yes 樣例給出[4, 5, 1, 2, 3]和target=1,返回 2
給出[4, 5, 1, 2, 3]和target=0,返回 -1
相關題目
分析:二分查詢,主要是確定單調遞增的那一段區間
程式碼:
class Solution { /** * param A : an integer ratated sorted array * param target : an integer to be searched * return : an integer */ public: int search(vector<int> &A, int target) { // write your code here return search(A,target,0,A.size()-1); } int search(vector<int>&A,int target,int l,int r) { if(l>r) return -1; int mid = (l+r)/2; if(A[mid]==target) return mid; if(A[mid]>A[l]) { if(A[mid]>=target&&target>=A[l]) return search(A,target,l,mid-1); else return search(A,target,mid+1,r); } else { if(A[mid]<=target&&target<=A[r]) return search(A,target,mid+1,r); else return search(A,target,l,mid-1); } } };
相關推薦
LintCode-搜尋旋轉排序陣列
假設有一個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定一個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。 你可以假設陣列中不存在重複的元素。 您在真實的面試中是否遇到過這個題?
LintCode : 搜尋旋轉排序陣列
假設有一個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定一個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。 你可以假設陣列中不存在重複的元素。 方案一:遍歷所有
Lintcode 搜尋插入位置/搜尋旋轉排序陣列插入位置
問題1 搜尋插入位置 給定一個排序陣列和一個目標值,如果在陣列中找到目標值則返回索引。如果沒有,返回到它將會被按順序插入的位置。 你可以假設在陣列中無重複元素。 樣例 [1,3,5,6],5 → 2 [1,3,5,6],2 → 1 [1,3,5,6], 7 → 4 [
【兩次過】Lintcode 63. 搜尋旋轉排序陣列 II
跟進“搜尋旋轉排序陣列”,假如有重複元素又將如何? 是否會影響執行時間複雜度? 如何影響? 為何會影響? 寫出一個函式判斷給定的目標值是否出現在陣列中。 樣例 給出[3,4,4,5,7,0,1,2]和target=4,返回 true 解題思路: 只需要舉出能夠
【兩次過】Lintcode 62. 搜尋旋轉排序陣列
假設有一個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定一個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。 你可以假設陣列中不存在重複的元素。 樣例 給出[4, 5, 1, 2, 3]
LintCode 62. 搜尋旋轉排序陣列
假設有一個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定一個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。你可以假設陣列中不存在重複的元素。public class Solution {
LintCode 63. 搜尋旋轉排序陣列 II
跟進“搜尋旋轉排序陣列”,假如有重複元素又將如何?是否會影響執行時間複雜度?如何影響?為何會影響?寫出一個函式判斷給定的目標值是否出現在陣列中。public class Solution { /** * @param A: an integer ratated
LeetCode-33 search-in-rotated-sorted-array 搜尋旋轉排序陣列
題目連結 https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ 題意 對於一個升序排序的陣列,從某個位置截斷,然後直接拼在後面。看題目給的例子,還是比較
[Swift]LeetCode81. 搜尋旋轉排序陣列 II | Search in Rotated Sorted Array II
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,0,1,2,2,5,6] might become [2,5,6,0
leet33. 搜尋旋轉排序陣列
題目: 假設按照升序排序的陣列在預先未知的某個關鍵點上旋轉。 (即 0 1 2 4 5 6 7 將變成 4 5 6 7 0 1 2)。 給你一個目標值來搜尋,如果陣列中存在這個數則返回它的索引,否則返回 -1。 你可以假設陣列中不存在重複。 分析: 可
leetcode題庫——搜尋旋轉排序陣列
題目描述: 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回&nbs
Leetcode篇:搜尋旋轉排序陣列
@author: ZZQ @software: PyCharm @file: search.py @time: 2018/11/12 18:12 要求:假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜
【JS】搜尋旋轉排序陣列 II #陣列 #二分查詢
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,0,1,2,2,5,6] 可能變為 [2,5,6,0,0,1,2] )。 編寫一個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。 示例 1: 輸入: nums
【JS】 搜尋旋轉排序陣列 #陣列 #二分查詢
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 -1 。 你可以假設陣列中不存在重複的元素。 你的
Leetcode 33 搜尋旋轉排序陣列
【題目描述】 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 
LeetCode33-搜尋旋轉排序陣列
昨天參加學院舉辦的演算法比賽 從上午10點一直考到下午3點 唯一的感受就是 中午發的兩袋皇冠蛋糕和牛奶 真TM的好吃!!! 33-搜尋旋轉排序陣列 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7]&nbs
33. 搜尋旋轉排序陣列Leetcode
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 -1 。 你可以假設陣列中不存在重複
【LeetCode】#81搜尋旋轉排序陣列 II(Search in Rotated Sorted Array II)
【LeetCode】#81搜尋旋轉排序陣列 II(Search in Rotated Sorted Array II) 題目描述 假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,0,1,2,2,5,6] 可能變為 [2,5,6,0,0,1,2] )。 編
33. 搜尋旋轉排序陣列
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則
81. 搜尋旋轉排序陣列 II
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,0,1,2,2,5,6] 可能變為 [2,5,6,0,0,1,2] )。 編寫一個函式來判斷給定的目標值是否存在於陣列中。若