2014年2月13日

Binary Search

摘要: 在有重复元素的条件下如何进行binary search?原来的方法会返回重复元素中随机的一个。如何返回第一个target或者最后一个? 1 public static int binarySearch(int[] A, int target) { 2 int start = 0; 3 int end = A.length-1; 4 int mid = 0; 5 6 int result = -1; 7 8 while (start target) {16 ... 阅读全文

posted @ 2014-02-13 01:38 longhorn 阅读(213) 评论(0) 推荐(0) 编辑

LeetCode: Search in Rotated Sorted Array I & II

摘要: 首先要注意二分法。二分法的终止条件是:low > high,而不是low >= high。因为在某些情况下,low == high的下一步就是就是low > high,而low == high恰是范围缩小到一个元素的情况。二分法的更新操作。是将mid-1赋值给high,或者将mid+1赋值给low。而不是mid赋值给high或low。当只有2个元素的时候,会形成无线循环。所以每次要缩小范围。这道题一共做了三种算法。第一种是用二分法先找到数组中的最大元素,确定两段数组分别的位置。然后再根据target的大小确定它在哪个范围内,进而在其中一段再进行二分查找。存在的问题是,找最大元 阅读全文

posted @ 2014-02-13 00:10 longhorn 阅读(146) 评论(0) 推荐(0) 编辑

导航