旋转数组的最小值
来源:互联网 发布:淘宝上买保险可靠吗 编辑:程序博客网 时间:2024/04/27 23:26
二分不止是可以查找最小值,它可以查具有顺序的特征值,当找不出特征时可以遍历
import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int [] array) { int left = 0, right = array.length-1; if(array[left] < array[right]) return array[left]; int num_l = array[left]; int num_r = array[right]; int min = 2147483647; int mid = (left+right)/2; while (left <= right) { mid = (left+right)/2; min = Math.min(min, array[mid]); if(array[mid] == num_l && array[mid] == num_r) { for(int i = 0; i < array.length-1; ++i) { min = Math.min(min, array[i]); } return min; } else if(array[mid] >= num_l || array[mid] >= num_r) { left = mid + 1; } else if(array[mid] <= num_l || array[mid] <= num_r) { right = mid - 1; } } return Math.min(min, array[mid]); } public static void main(String[] args) { int[] array = new int[] { 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4 }; System.out.println((new Solution()).minNumberInRotateArray(array)); }}
阅读全文
0 0
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 寻找旋转数组的最小值
- 输出旋转数组的最小值
- 旋转数组的最小值问题
- 求旋转数组的最小值
- 旋转数组的最小值输出
- 查找旋转数组的最小值
- 查找旋转数组的最小值
- BufferedMutator
- Linux学习之路二-常用操作命令一
- 导入Excel
- Django1.7.2+Bootstrap3.3.0 整合九:使用数据库
- 作业、会话和守护进程
- 旋转数组的最小值
- 利用Spring的AbstractRoutingDataSource来解决多数据源的问题,eg:数据库的读写分离
- python + Scrapy 爬取动态网页
- 导出Excel
- 在ArcGIS中创建Python工具或者pyt工具箱
- mysql的主从复制
- Lab_3
- 二分查找算法
- Linux下安装weblogic12.1.3