Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

Write a function to determine if a given target is in the array.

我的思路:

太混乱了 不提了。注意关键区分依据 排好序的一定是从小到大的

看大神的吧:

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 Iif (A[l] < A[m]) { //left half is sorted 排好序的部分一定是从小到大的if (A[l] <= key && key < A[m]) //在排好序的这部分r = m - 1;elsel = m + 1;} else if (A[l] > A[m]) { //right half is sortedif (A[m] < key && key <= A[r])l = m + 1;elser = m - 1;} else l++; //A[l] == A[m] 把l增大1个再循环
    }return false;
}

我的代码,把三个数字都相等的情况单独处理,其他就用无重复处理。 其实我的代码看起来长一些,但是在处理1111111111115这种情况时我的方法优势还是有的

bool search(int A[], int n, int target) {int l = 0, r = n - 1;while(l <= r){int m = (l + r) / 2;if(target == A[m])return true;else if(A[l] == A[m] && A[m] == A[r]) //三个值相等
        {bool isequalleft = true;for(int i = l; i < m; i++){if(A[i] != A[i + 1]){isequalleft = false;break;}}if(isequalleft) //去掉重复的那一半l = m + 1;elser = m - 1;}else //与不重复的方法相同
        {if (A[l] <= A[m]) {if (target >= A[l] && target < A[m]) {r = m - 1;} else {l = m + 1;}} else {if (target > A[m] && target <= A[r]) {l = m + 1;} else {r = m - 1;}}}}return false;
}

【leetcode】Search in Rotated Sorted Array II(middle)☆相关推荐

  1. leetcode 81 Search in Rotated Sorted Array II ----- java

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  2. [LeetCode] 81. Search in Rotated Sorted Array II

    题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...

  3. 【Leetcode】Remove Duplicates from Sorted Array II

    题目:对上一题的延伸,每个数字可以出去2次. 思路:还是设置两个下标.第一个lenxb标记已去重的地方,第二个i标记待处理的位置.每次比较时,比较lenxb和lenxb-1两个位置,如果都相等,说明出 ...

  4. LeetCode 33. Search in Rotated Sorted Array

    问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...

  5. 【LeetCode】436. Find Right Interval 解题报告(Python)

    [LeetCode]436. Find Right Interval 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: h ...

  6. LeetCode Search in Rotated Sorted Array II

     Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...

  7. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  8. LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

  9. leetcode - Search in Rotated Sorted Array II

    Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...

最新文章

  1. 能力差的程序员90%输在这点上!CTO:其实都是瞎努力!
  2. 细说Redis监控和告警
  3. GDCM:gdcm::ExplicitDataElement的测试程序
  4. Android app native代码性能分析
  5. 微软出品,文科生也能学得懂的Python免费入门视频
  6. php phpexcel导入excel
  7. 【新冠肺炎】SIR模型预测与数据分析之代码篇
  8. 四阶五级matlab,微分方程数值解法matlab(四阶龙格—库塔法).ppt
  9. coreseek笔记
  10. arcgis制作土地利用转移矩阵
  11. 单因素试验固定效应模型方差分析
  12. Word文档 公式换行 小技巧
  13. 阿里云MVP精选2018年终盘点:大咖专访+最佳实践,丰富干货等你来!
  14. 关于springboot部署服务器的步骤
  15. 满足功能安全要求的代码测试方案:Parasoft C++test
  16. 米勒-拉宾素性检测算法
  17. 5.Unity2D 横版 对象池的创建
  18. 完整版 html代码简洁说明,【完整版-HTML代码简介说明-适合新手】讲述.ppt
  19. Go调用Python by go-python3
  20. SSD模型(论文大致内容)

热门文章

  1. 用JQuery模仿淘宝的图片显示效果
  2. 关于routerOS设置PPPOE与HOTSPOT并存的说明
  3. mysql 原理 ~ DDL之在线DDL
  4. Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
  5. 极米亮相CES展 首推3000元内1080p无屏电视
  6. GNU make manual 翻译(五十一)
  7. centos7 安装kubernetes1.4(kubeadm版)
  8. 徐玉玉案宣判了,反思大数据能够做些什么!
  9. 企业Shell实战-MySQL分库分表备份脚本
  10. [转] 微软SQL Server 2008故障转移集群概述(Windows Server Failover Clustering (WSFC))