Find Minimum in Rotated Sorted Array
2024-09-23 22:54:00
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));
}
}
最新文章
- python算法:rangeBitwiseAnd(连续整数的与)
- drop、 truncate 、 delete
- VS模板文件修改,自动生成注释
- homework-05 大家一起玩游戏~
- 轻松学习Linux之入门篇
- [Oracle]Oracle数据库任何用户密码都能以sysdba角色登入
- 服务器部署_linux下部署jprofiler简单备忘
- linux下面的解压缩文件的命令
- LeetCode OJ 222. Count Complete Tree Nodes
- dig(域信息搜索器)命令
- Flex中TitleWindow传值
- 总账balance表
- ASP.NET Identity 一 (转载)
- 文本工具 TextUtils 字符串
- 开源的在线评测系统——Vakuum
- delphi services允许跨域访问
- JS-记住用户名【cookie封装引申】
- java学习笔记8--接口总结
- PowerShell管理Azure
- 疯狂java学习笔记
热门文章
- 利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并。按学号升序排列.
- 一个TextView内显示不同颜色的文字
- DB2 for z: system catalog tables
- 三、jQuery--jQuery实践--搜索框制作
- VCC、VDD、VSS、 VEE 和VPP的区别
- ps -C nginx --no-header |wc -l
- bt和wifi的共存
- Shell编程基础教程6--shell函数
- OCJP(1Z0-851) 模拟题分析(九)over