d*d
2 楼
我记得这个,好像没有得出完美答案
g*y
3 楼
heap to BST, 我只知道个不完美的答案,把heap sort后,依次填回heap结构中,用
successor()。
BST to heap, 有人给出答案:
public void bst2heap(int a[]) {
int n = a.length;
reverseArm(a, 0, n);
for (int i = 1; i < n / 2; i += 2)
reverseArm(a, i, n);
}
private void reverseArm(int a[], int from, int n) {
int to = from;
while (to * 2 + 2 < n)
to = to * 2 + 2;
while (to > from) {
int t = a[to];
a[to] = a[from];
a[from] = t;
from = from * 2 + 2;
to = to / 2 - 1;
}
}
这个答案有一点小bug, 就是最后的叶子有可能不对,需要检查一下。
successor()。
BST to heap, 有人给出答案:
public void bst2heap(int a[]) {
int n = a.length;
reverseArm(a, 0, n);
for (int i = 1; i < n / 2; i += 2)
reverseArm(a, i, n);
}
private void reverseArm(int a[], int from, int n) {
int to = from;
while (to * 2 + 2 < n)
to = to * 2 + 2;
while (to > from) {
int t = a[to];
a[to] = a[from];
a[from] = t;
from = from * 2 + 2;
to = to / 2 - 1;
}
}
这个答案有一点小bug, 就是最后的叶子有可能不对,需要检查一下。
相关阅读
下周 onsite Bloomberg没有competing offer怎么谈薪水?没人关心G开始做 ride sharing ?Airbnb还是留在Uber?不作不死的airbnb,公司今天又出新花样了 (转载)求助生物专业找工作的经验G家与L家 new grad offer 求比较Entry Level Mechanical Engineer从我做起抵制Airbnb今年四大职位好少,都不招人了吗?Uber 会成功,但是AirBnb 估计要玩【工作机会】湾区初创公司招全栈工程师王垠去微软了,大家怎么看?Airbnb家ceo确实有些得意忘形了中年人选择问题 (转载)SQL server DBA needed (转载)Aerospace Software Engineer at The MathWorksh1b 抽中被revoke是自动转成opt吗?A公司给Offer 如何尽可能拖延时间去面B公司问个termination的问题