题目链接

题目大意:与33题类似,只是这里数组中有重复数值。

法一:解法与33题类似,只是这里要处理1,3,1,1,1这种情况,即有重复值时,mid与left和right都相等时,可以采用right--的方式错开相等值再比较。代码如下(耗时2ms):

     public boolean search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] == target || nums[left] == target || nums[right] == target) {
return true;
}
//如果左数组有序
else if(nums[left] < nums[mid]) {
//如果target在左数组中
if(target < nums[mid] && target > nums[left]) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
//如果右数组有序
else if(nums[mid] < nums[right]){
//如果target在右数组中
if(target < nums[right] && target > nums[mid]) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
//如果出现1,3,1,1,1的情况,mid值与left和right都相等,则将right--再比较
else {
right--;
}
}
return false;
}

最新文章

  1. kali开启ssh
  2. find函数
  3. 使用Cyclone IV控制DDR2
  4. [Android NDK/JNI-1A]-开发环境搭建
  5. [转]Python核心模块——urllib模块
  6. javascript学习笔记(一)
  7. SQL Server中日志
  8. Servlet 笔记-异常处理
  9. 类相关的BIF
  10. vue--监听器
  11. BZOJ3196二逼平衡树——线段树套平衡树(treap)
  12. PHP设计模式注意点
  13. Linux学习6-CentOS搭建appium服务
  14. CodeWarrior WarningC12056
  15. Cisco交换机配置VLAN
  16. VSS2005 上传pdf 空白
  17. C语言 &#183; 关联矩阵
  18. luogu P1012 拼数
  19. 洛谷 P3225 [HNOI2012]矿场搭建
  20. Palindrome Function

热门文章

  1. BZOJ 1149 风铃(树形DP)
  2. BZOJ 1036 树的统计(树链剖分)
  3. [洛谷P4092][HEOI2016/TJOI2016]树
  4. POJ2135:Farm Tour——题解
  5. BZOJ1070:[SCOI2007]修车——题解
  6. BZOJ2527 &amp; 洛谷3527:[Poi2011]Meteors——题解
  7. 将Visual Studio项目转换为Dot Net Core项目 csproj to xproj
  8. POJ 2763 Housewife Wind 纯粹LCA写法(简单无脑)
  9. bzoj 1564 [NOI2009]二叉查找树 区间DP
  10. HDU3265 线段树(扫描线)