题目
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
方法
和有序数组的思想基本一样,将链表进行二分。
TreeNode getBST(ListNode head, int len) {
i...
分类:
其他好文 时间:
2014-06-20 09:46:33
阅读次数:
267
【题目】
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3],
Your function should return length = 5, and A is now [1,1,2,2,3].
【题意】
给定一个有序数组,给数组去重,和Remove Duplicates from...
分类:
其他好文 时间:
2014-06-03 05:36:24
阅读次数:
219
1.已知两个有序数组A,B,将它们合并为一个有序数组。利用到的是归并算法的思想。int*
combine(int a[],int n1,int b[],int n2){ int i = 0,j = 0,k = 0; int *c = new
int[n1+n2]; while(i<...
分类:
其他好文 时间:
2014-05-28 01:27:55
阅读次数:
213
二叉树
1.为什么要使用二叉树?
二叉树结合了有序数组快速查找和线性链表快速插入删除的优势。
树是一种既能像有序数组一样实现快速查询,又能像链表一样实现快速地插入和删除的数据结构.
2.有关树的几个术语
路径:从一个节点走到另一个节点,过程中数据的排列叫做路径.
根:一个树只有一个根,只有子节点,没有父节点.
父节点:每个节点都向上连接的节点叫做父节点,根没有父节点,一个子节...
分类:
其他好文 时间:
2014-05-26 05:59:50
阅读次数:
171
出题:要求将一个有序整数数组转换成最小深度的Binary Search
Tree表示;分析:由于需要是最小深度,所以BST应保持平衡,左右节点数大致相当,并且BST中当前根节点大于所有其左子树中的元素,小于所有其右子树中的元素。对于排序数组而言,中间元素必然作为根节点,然后递归对由中间元素分割的左右...
分类:
其他好文 时间:
2014-05-26 03:49:39
阅读次数:
369
题目:一个有序数组,要求保证数组中的每个元素不能超过2个。 输入:A =[1,1,1,2,2,3]
输出:length =5, and A is now[1,1,2,2,3]思路:双指针
。有些绕,不过理清了后,思路还是很直接明朗的。1、两个指针:p和help。初始化时同时指向数组头。变量cur.....
分类:
其他好文 时间:
2014-05-25 16:15:16
阅读次数:
285
题目:合并两个有序数组A ,
B,将合并后的数组存到A中。假设A的空间足够装下A和B所有的元素。思路:这道题考虑如果正向扫描两个数组,则每插入一个元素,则需移动A后的所有元素。换个角度想,既然元素个数一定,则从尾部扫描两个数组,依次放入到A的尾部,这样既不会产生大量元素的移动,也不会造成A中元素被覆...
分类:
其他好文 时间:
2014-05-25 15:09:32
阅读次数:
222
//3、假定有20个 有序 数组,每个数组有500个数字,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个,怎么做?
#include
using namespace std;
struct node
{
int data;
int next;
};
node obj[20];
void sift(int k,int m,int ...
分类:
其他好文 时间:
2014-05-22 10:54:48
阅读次数:
292
查找(一)
我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。
符号表中可能会保存很多键和很多信息,因此实现一张高效的符号表也是一项很有挑战性的任务。
我们会用三种经典的数据类型来实现高效的符号表:二叉查找数、红黑树、散列表。
二分查找
我们使用有序数组存...
分类:
其他好文 时间:
2014-05-22 10:33:13
阅读次数:
403
问题描述:已知有序数组a[N],
从中间某个位置k(k未知,k=-1表示整个数组有序)分开,然后将前后两部分互换,得到新的数组,在该新数组的查找元素x。如:a[]={1,2,5,7,9,10,15},从k=4分开,得到新数组a={9,10,15,
1,2,5,7}。 1 #include "stda...
分类:
其他好文 时间:
2014-05-15 10:49:37
阅读次数:
334