【leetcode】Search in Rotated Sorted Array II(middle)☆
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)☆相关推荐
- leetcode 81 Search in Rotated Sorted Array II ----- java
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- [LeetCode] 81. Search in Rotated Sorted Array II
题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...
- 【Leetcode】Remove Duplicates from Sorted Array II
题目:对上一题的延伸,每个数字可以出去2次. 思路:还是设置两个下标.第一个lenxb标记已去重的地方,第二个i标记待处理的位置.每次比较时,比较lenxb和lenxb-1两个位置,如果都相等,说明出 ...
- LeetCode 33. Search in Rotated Sorted Array
问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...
- 【LeetCode】436. Find Right Interval 解题报告(Python)
[LeetCode]436. Find Right Interval 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: h ...
- LeetCode Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- 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 ...
- leetcode - Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
最新文章
- 能力差的程序员90%输在这点上!CTO:其实都是瞎努力!
- 细说Redis监控和告警
- GDCM:gdcm::ExplicitDataElement的测试程序
- Android app native代码性能分析
- 微软出品,文科生也能学得懂的Python免费入门视频
- php phpexcel导入excel
- 【新冠肺炎】SIR模型预测与数据分析之代码篇
- 四阶五级matlab,微分方程数值解法matlab(四阶龙格—库塔法).ppt
- coreseek笔记
- arcgis制作土地利用转移矩阵
- 单因素试验固定效应模型方差分析
- Word文档 公式换行 小技巧
- 阿里云MVP精选2018年终盘点:大咖专访+最佳实践,丰富干货等你来!
- 关于springboot部署服务器的步骤
- 满足功能安全要求的代码测试方案:Parasoft C++test
- 米勒-拉宾素性检测算法
- 5.Unity2D 横版 对象池的创建
- 完整版 html代码简洁说明,【完整版-HTML代码简介说明-适合新手】讲述.ppt
- Go调用Python by go-python3
- SSD模型(论文大致内容)
热门文章
- 用JQuery模仿淘宝的图片显示效果
- 关于routerOS设置PPPOE与HOTSPOT并存的说明
- mysql 原理 ~ DDL之在线DDL
- Docker、kubernetes、微服务、SpringBoot/Cloud...好乱!到底要不要学?
- 极米亮相CES展 首推3000元内1080p无屏电视
- GNU make manual 翻译(五十一)
- centos7 安装kubernetes1.4(kubeadm版)
- 徐玉玉案宣判了,反思大数据能够做些什么!
- 企业Shell实战-MySQL分库分表备份脚本
- [转] 微软SQL Server 2008故障转移集群概述(Windows Server Failover Clustering (WSFC))