package leetcode;
/* *
* 注意问题:
* 1. 原序列升序、降序问题,两种情况都要考虑
* 2. 边界问题,如果只有两个元素时要单独考虑,在num[mid]==num[left]判断中考虑
* 3. 采用2叉查找的思想
* */
public class findMinInRotatedSortedArray {
public int findMin(int[] num)
{ int left=0;
int right=num.length-1;
if(num[left]>num[right])//原序列是升序排列
{
while(left < right)
{
int mid=(left+right)/2;
if(num[mid]==num[left])
left=mid+1;
else if(num[mid]>num[left])
left=mid;
else
right=mid; }
}
else //原序列是降序排列
{
while(left < right)
{
int mid=(left+right)/2;
if(num[mid]==num[left])
right=mid-1;
else if(num[mid]>=num[left])
right=mid;
else
left=mid;
}
}
return num[left];
}
public static void main(String[] args)
{
int[] arr=new int[3];
arr[0]=3;
arr[1]=1;
arr[2]=2;
findMinInRotatedSortedArray a=new findMinInRotatedSortedArray();
System.out.println(a.findMin(arr));
}
}

最新文章

  1. python算法:rangeBitwiseAnd(连续整数的与)
  2. drop、 truncate 、 delete
  3. VS模板文件修改,自动生成注释
  4. homework-05 大家一起玩游戏~
  5. 轻松学习Linux之入门篇
  6. [Oracle]Oracle数据库任何用户密码都能以sysdba角色登入
  7. 服务器部署_linux下部署jprofiler简单备忘
  8. linux下面的解压缩文件的命令
  9. LeetCode OJ 222. Count Complete Tree Nodes
  10. dig(域信息搜索器)命令
  11. Flex中TitleWindow传值
  12. 总账balance表
  13. ASP.NET Identity 一 (转载)
  14. 文本工具 TextUtils 字符串
  15. 开源的在线评测系统——Vakuum
  16. delphi services允许跨域访问
  17. JS-记住用户名【cookie封装引申】
  18. java学习笔记8--接口总结
  19. PowerShell管理Azure
  20. 疯狂java学习笔记

热门文章

  1. 利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境
  2. 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并。按学号升序排列.
  3. 一个TextView内显示不同颜色的文字
  4. DB2 for z: system catalog tables
  5. 三、jQuery--jQuery实践--搜索框制作
  6. VCC、VDD、VSS、 VEE 和VPP的区别
  7. ps -C nginx --no-header |wc -l
  8. bt和wifi的共存
  9. Shell编程基础教程6--shell函数
  10. OCJP(1Z0-851) 模拟题分析(九)over