Search in Rotated Sorted Array II

来源:互联网 发布:ios编程软件 编辑:程序博客网 时间:2024/06/08 05:33

这道题目类型不少,一般情况下是能写出来的。但写的复杂,时间长。

切入点要放在中间元素和端点元素的比较上,并依此进行情况的分类。

传统的二分主要是比较中间元素,然后决定前进的方向。这里相当于多了一层判断。

1.先判断已排序的部分,2,在确定前进的方向,3,所谓前进就是left和right的值的更新。

最坏的情况下对退化为线性。

简洁的代码:https://oj.leetcode.com/discuss/223/when-there-are-duplicates-the-worst-case-is-could-we-do-better

bool search(int A[], int n, int key) {    int l = 0, r = n - 1;    while (l <= r) {        int m = l + (r - l)/2;        if (A[m] == key) return true; //return m in Search in Rotated Array I        if (A[l] < A[m]) { //left half is sorted            if (A[l] <= key && key < A[m])                r = m - 1;            else                l = m + 1;        } else if (A[l] > A[m]) { //right half is sorted            if (A[m] < key && key <= A[r])                l = m + 1;            else                r = m - 1;        } else l++;    }    return false;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6个月孩子流鼻涕怎么办 十一个月孩子感冒流鼻涕怎么办 7个月孩子流鼻涕怎么办 18个月的宝宝流鼻涕怎么办 6个月宝宝咳嗽流鼻涕怎么办 18个月宝宝咳嗽流鼻涕怎么办 6个月宝宝流鼻涕打喷嚏怎么办 宝宝18个月流鼻涕怎么办 18个月宝宝感冒流鼻涕怎么办 小孩睡觉鼻子不通气怎么办 宝宝鼻子里有鼻涕出不来怎么办 孩子喉咙有痰呼呼响怎么办 六个月宝宝鼻塞怎么办速效办法 两个月小孩鼻子不通气怎么办 一岁宝宝流清鼻涕怎么办 孩子鼻子里有鼻涕怎么办 宝宝晚上睡觉鼻子不通气怎么办 宝宝感冒睡觉鼻子不通气怎么办 宝宝3个月流鼻涕怎么办 小孩吃着了发烧怎么办 半岁宝宝鼻子塞怎么办 宝宝伤风鼻子不通气怎么办 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办 五个月婴儿感冒发烧怎么办 两个月的婴儿感冒发烧怎么办 9个月婴儿感冒发烧怎么办 两个月婴儿感冒鼻塞咳嗽怎么办 两个月婴儿感冒咳嗽流鼻涕怎么办 小孩感冒发烧怎么办速效办法 宝宝打喷嚏流清鼻涕怎么办 宝宝感冒流清鼻涕怎么办 2岁感冒流清鼻涕怎么办 小孩感冒流清鼻涕怎么办 4岁宝宝半夜发烧怎么办 四岁宝宝免疫力低下怎么办 两岁宝宝咳嗽流鼻涕怎么办 小婴儿流清鼻涕怎么办