摘要: 1 public int findMin(int[] nums) 2 { 3 return findMin(nums, 0, nums.length - 1); 4 } 5 public int findMin(int[] nums, int left, int right) 6 { 7 int mid = (left... 阅读全文
posted @ 2016-06-09 15:39 32ddd 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 问题描述:寻找反转序列中最小的元素。 算法分析:和寻找某个数是一个道理,还是利用二分查找,总体上分两种情况。nums[left]<=nums[mid],else。但是,在截取子序列的时候,有可能得到一个顺序序列。如34512,截取后得到12,此时要对这种情况判断,因为是顺序的,所以,最左边的元素就是 阅读全文
posted @ 2016-06-09 15:37 32ddd 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 问题描述:反转序列,但是有重复的元素,例如序列13111。 算法思路:如果元素有重复,那么left-mid,就不一定是有序的了,所以不能利用二分搜索,二分搜索必须是局部有序。针对有序序列的反转,如果有重复数据的话,那么必然是nums[left]=nums[mid]=nums[right],增加对这种 阅读全文
posted @ 2016-06-09 14:52 32ddd 阅读(168) 评论(0) 推荐(0) 编辑