国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LeetCode-SearchinRotatedSortedArray

2019-11-14 14:54:03
字體:
來源:轉載
供稿:網友

題目:

Search in Rotated Sorted Array
Total Accepted: 81090 Total Submissions: 277272 Difficulty: Hard

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.

思路:

數組被翻轉,我們以中間元素為核心,把它分為兩種情況,一種情況是中間元素的左邊是有序的,一種是中間元素的右邊是有序的。比如{ 0 1 2 4 5 6 7 }被翻轉為{ 6 7 0 1 2 4 5 }或{ 2 4 5 6 7 0 1 }。

所以每次判斷我們都取輕避重,總是跟有序的這邊比較。

package array;public class SearchInRotatedSortedArray {    public int search(int[] nums, int target) {        int len = 0;        if (nums == null || (len = nums.length) == 0) return 0;        // { 0 1 2 4 5 6 7 }        // 1. { 6 7 0 1 2 4 5 }        // 2. { 2 4 5 6 7 0 1 }        int l = 0;        int r = len - 1;                while (l <= r) {            int mid = (l + r) / 2;            if (nums[mid] == target) return mid;            if (nums[mid] < nums[r]) {                if (target > nums[mid] && target <= nums[r])                    l = mid + 1;                else                    r = mid - 1;            } else {                if (nums[l] <= target && target < nums[mid])                     r = mid - 1;                else                    l = mid + 1;            }        }                return -1;    }        public static void main(String[] args) {        // TODO Auto-generated method stub        int[] nums = { 4, 5, 6, 7, 0, 1, 2 };        SearchInRotatedSortedArray s = new SearchInRotatedSortedArray();        System.out.PRintln(s.search(nums, 2));    }}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗城| 东乌珠穆沁旗| 建瓯市| 陆良县| 许昌县| 治县。| 霞浦县| 洪洞县| 周口市| 华阴市| 关岭| 庆元县| 哈巴河县| 亳州市| 睢宁县| 盘锦市| 横峰县| 崇信县| 临西县| 谢通门县| 祁连县| 崇左市| 长阳| 兴义市| 忻州市| 兰坪| 和田县| 扶沟县| 罗江县| 西和县| 射洪县| 秭归县| 平江县| 乌鲁木齐县| 泰和县| 孝义市| 夹江县| 五家渠市| 丰都县| 西吉县| 万源市|