旋转数组的查找问题。从头开始扫一遍,O(N)的复杂度,一般也能过,甚至先排序以下,再二分都能过。不过这道题的目的当然不在于此。
想一下旋转之后对我们的查找产生了什么影响。如果没旋转过,我们直接比较target与A[middle]的大小,然后总能非常确定的丢掉源数组的一半,即把搜索空间减半,但是旋转之后,只根据A[middle]是确定不了下一轮的走向的,因为即使A[middle]比target大,...
                            
                            
                                分类:
其他好文   时间:
2014-05-12 15:25:32   
                                阅读次数:
231
                             
                    
                        
                            
                            
                                Mergeksorted linked lists and return it as one 
sorted list. Analyze and describe its 
complexity.思路:合并k个有序链表为一个有序链表。我们可以用先合并两个链表的方法,然后逐个遍历链表数组,与上一个合并结束...
                            
                            
                                分类:
其他好文   时间:
2014-05-12 15:07:06   
                                阅读次数:
305
                             
                    
                        
                            
                            
                                接着上一篇,同样是旋转数组中查找问题。如果这个数组有重复元素怎么办呢?会有什么影响?
我举一个极端的例子,假设数组中的元素是这样的,1,1,2,1,1,1,1,我们要在这个数组中查找2,一开始的A[middle]=1,发现比target小,那我们就看看A[0]和A[N],发现都跟A[middle]相等,那么这个2到底在哪一半中?只有上帝知道,如果他老人家真的存在的话。这种时候我们怎么办呢?没有其...
                            
                            
                                分类:
其他好文   时间:
2014-05-12 14:45:35   
                                阅读次数:
278
                             
                    
                        
                            
                            
                                Suppose a sorted array is rotated at some pivot 
unknown to you beforehand.(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).You are 
given a target value t...
                            
                            
                                分类:
其他好文   时间:
2014-05-12 07:31:40   
                                阅读次数:
332
                             
                    
                        
                            
                            
                                水题。
我之前说过包含至多几个至少几个的问题都比较难,这个题可是让我大脸了。至多可以重复一次,那就重复次数多于两次再计算重复,否则的话像普通的数据一样直接按照重复次数前移就可以了嘛。不过说归说,这种inspace的思想还是有些用处的,数组这种实现方式致命的缺点就是删除或者添加中间的元素代价太大,因为不好把握数据的最终位置。这个题是一种情况,合并两个排序好的数组也是一个例子。
class Sol...
                            
                            
                                分类:
其他好文   时间:
2014-05-11 14:54:49   
                                阅读次数:
248
                             
                    
                        
                            
                            
                                Search Insert Position
 Total Accepted: 14091 Total
 Submissions: 41005My Submissions
Given a sorted array and a target value, return the index if the target is found. If not, return the in...
                            
                            
                                分类:
其他好文   时间:
2014-05-11 05:53:03   
                                阅读次数:
241
                             
                    
                        
                            
                            
                                class Solution {public: ListNode 
*insertionSortList(ListNode *head) { if (head == NULL) return NULL; ListNode* 
sorted_head = head; ...
                            
                            
                                分类:
其他好文   时间:
2014-05-10 20:39:14   
                                阅读次数:
419
                             
                    
                        
                            
                            
                                There are two sorted arrays A and B of size m 
and n respectively. Find the median of the two sorted arrays. The overall run 
time complexity should be ...
                            
                            
                                分类:
其他好文   时间:
2014-05-09 23:26:18   
                                阅读次数:
353
                             
                    
                        
                            
                            
                                一点小错,两次过,基本思想是先比较头元素,哪个小就在哪个list的基础上插入,需要考虑两种不同的结束方式 1 
/** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int 
val; 5 *...
                            
                            
                                分类:
其他好文   时间:
2014-05-09 09:21:59   
                                阅读次数:
273
                             
                    
                        
                            
                            
                                原地归并。下面是AC代码: 1 public void merge(int A[], int m, 
int B[], int n) { 2 3 int len = A.length; 4 //first copy m elements of A...
                            
                            
                                分类:
其他好文   时间:
2014-05-09 05:59:54   
                                阅读次数:
297