Leetcode刷题 33.搜索旋转排序数组
生活随笔
收集整理的這篇文章主要介紹了
Leetcode刷题 33.搜索旋转排序数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分析:
首先看到這題的第一印象是題目很長,感覺很復雜,但仔細看下來之后發現題目中間一段對解題沒有任何的幫助,重點在最后一句,大概意思就是在目標數組中找到目標數據,并傳出對應位置,否則傳出-1
清楚了目的,由此想到了第一種解法:即直接循環數組,與目標數據匹配。順利通過測試。
int search(vector<int>& nums, int target) {int temp=0,flag=-1; //flag用來記錄是否找到目標數據,temp用來記錄位置for(auto i:nums) //循環尋找目標數字{temp++; //位置偏移if(i==target){flag=temp; //記錄位置}}if(flag!=-1){return flag-1;}else{return -1;}}解法二:二分查找,察覺到使用此方法的一個重要因素就是題目首句數組按升序排列,但是此題對普通的二分查找做了一些變化,是在題目的中間段落,對數組進行了旋轉,那么為了解決這一旋轉有兩種解法,一種是直接將旋轉之后的數組,再次旋轉回來;另一種,是在開始對目標值所在數組左右哪個部分進行判斷,然后對這部分進行二分查找。
在這里插入代碼片總結
以上是生活随笔為你收集整理的Leetcode刷题 33.搜索旋转排序数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode刷题 34.在排序数组中
- 下一篇: 总股本和总市值的关系