g****9 发帖数: 163 | 1 写了一个graph的class 但是下面第一种写法是错误的,我不是太明白,是因为
GNode node1 = null;GNode node2 = null吗?这时候node1跟node2并没有allocate
memory,所以就算后面if statement里面的node1 = new GNode(key1) 也只是在if这个
block里面有效的吧,在最后node1.connect(node2)里node1 是不是还是null呢 求指
点。第二个graph class 就可以work的。
public Graph(int[][] adjacencyMatrix) {
nodes = new HashMap();
GNode node1 = null;
GNode node2 = null;
for (int i = 0; i < adjacencyMatrix.length; i++) {
int key1 = i + 1;
... 阅读全帖 |
|
s*******9 发帖数: 5 | 2 在虚拟机里装了个RAC,发现个问题:
环境是这样的:
oracle virtual box 4.3.14
redhat linux enterprise edition 5.10
oracle rac and oracle clusterware 10.2.0.5.0
crs_stat -t
ora....SM1.asm application ONLINE ONLINE node1
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....SM2.asm application ONLINE ONL... 阅读全帖 |
|
r*******y 发帖数: 1081 | 3 来自主题: JobHunting版 - 问一个题目 bool IsNodeInside(TreeNode * root, TreeNode * node){
if(root==NULL)
return false;
if(node == root)
return true;
bool tmp = IsNodeInside(root->left, node);
if(tmp == true)
return true;
tmp = IsNodeInside(root->right, node);
if(tmp == true)
return true;
return false;
}
TreeNode * find(TreeNode * root, TreeNode * node1, TreeNode * node2){
if(root == NULL)
return NULL;
if(node1==root)
retur... 阅读全帖 |
|
d*******r 发帖数: 208 | 4 my bad. my revision won't work.
Wrote an nlogn code.
Node* LowCommonAnc(Node *node, Node *node1, Node *node2){
if(node==NULL || node1 == NULL || node2 == NULL) { return NULL; }
if (node == node1 || node == node2) { return node; }
if (isChildren(node->left, node1) && isChildren(node->left, node2)) {
// both go left
return LowCommonAnc(node->left, node1, node2);
} else if (isChildren(node->right, node1) && isChildren(node->right,
node2)) {
// both go right
... 阅读全帖 |
|
S**I 发帖数: 15689 | 5 ☆─────────────────────────────────────☆
fengzhongdi (fzd) 于 (Fri May 27 14:30:18 2011, 美东) 提到:
A的onsite,我尽量客观写,大家帮我分析一下
第一个 美国人, 两个string,问第一个是否包含第二个的全部character,扩展是求第一
个string最短的substring包含第二个中所有的character.
我的解法是hashtable, 然后扩展问题是O(n)那个,先找到第一个包含全部的,然后从头
开始删除,接着从尾巴增加那个.面试官表示满意.
OOD是设计card game
交流过程很融洽.
第二个 hiring manage,印度人, 这个人带我去吃饭,然后问了我电梯设计问题,纠缠在
什么时候读楼层,还有如何判断要不要停下来接人.说了快50分钟.我个人感觉还好,反正
他也是都是笑到最后
第三个,白人,一开始问我LRU cache的设计,我直接告诉他double linked list + hash
table,他很吃惊问我是不是准备过,我说是,然后换了一题Bian... 阅读全帖 |
|
Y********f 发帖数: 410 | 6 学习了,今天花时间仔细看了一下morris traversal,同时练习了一下,测试了一个
case。
Node *getNext(Node* &bst)
{
Node *cur = bst;
while(cur)
{
if (cur->lch == NULL)
{
bst = cur->rch;
return cur;
}
Node *prev = cur->lch;
while(prev->rch && prev->rch != cur)
prev = prev->rch;
if (!prev->rch)
{
prev->rch = cur;
cur = cur->lch;
}
else
{
prev->rch = NULL;
bst ... 阅读全帖 |
|
s**********e 发帖数: 326 | 7 Given two BTs T1 and T2, return the larest common subtree
idea:
step one:
首先分别对T1, T2做预处理,求出每个subtree的nodes总个数,把得到的结果存到
hashtable里面,这一步时间复杂度O(N), N=number of nodes
step two:
从root开始从上到下对每对相对应的node pair,判断以他们为root的subtree是否相同
given node1 from t1, node2 from t2
f(node1,node2)= true if node1 == node2 && f(node1.left, node2.left) && f(
node1.right, node2.right)
这个过程可以使用dp的思想,建个hashtable存放f的值,key=node1.hashcode+"-"+
node2.hashcode, value=boolean
这一步时间复杂度O(N)
step three:
有了第一步的每个subtree 的size, 第二步的每对s... 阅读全帖 |
|
b***y 发帖数: 2799 | 8 ☆─────────────────────────────────────☆
shuo (说说罢了) 于 (Thu Sep 22 16:28:10 2005) 提到:
其实是很简单的问题。 两个file,一个file有 node1 node2 C 三个field。另一个
file是个lookup table有 node E F三个field。输出是, node1 node2 C E(node1
) F(node1) E(node2) F(node2). 就是为node1,2找对应的E, F然后全部输出的意思
。 可是我不太会写程序,只能写最简单最笨的。 所以我写乐下边这个。 都还没管node2
, 想着先把node1 得E,F输出出来到一个out.txt里边,然后在运行一遍给node2找对应的E
, F。可是因为我的file1很大,几十万条record。 这个程序运行了2个小时乐,才1/5多
点。 可能也是file I/O的问题。 可是如果我不开关file2, 我不知道怎么让file2的
ifstream指针回到文件最顶上。 结果就是他只查找一遍,然 |
|
p*****2 发帖数: 21240 | 9 我写了一个
def merge(node1, node2):
if node1==None or node2==None:
return node1 if node2==None else node2
node1.right=merge(node2,node1.right)
return node1
def delete(root, node):
if root==None:
return None
elif root==node:
return merge(node.left,node.right)
else:
root.left=delete(root.left,node)
root.right=delete(root.right,node)
return root |
|
p*****2 发帖数: 21240 | 10 我写了一个
def merge(node1, node2):
if node1==None or node2==None:
return node1 if node2==None else node2
node1.right=merge(node2,node1.right)
return node1
def delete(root, node):
if root==None:
return None
elif root==node:
return merge(node.left,node.right)
else:
root.left=delete(root.left,node)
root.right=delete(root.right,node)
return root |
|
h*******e 发帖数: 1377 | 11 感觉答案 把 条件加强了 很可能 node1 node2 是选取2点, node1 -> node2 没有
route 而 node2 -> node 1 有route 这时候 如果把node1 作为start node2 做为
end...那就 不可能查出 node2 到 node1 的 route. 1 -> 2 1 -> 3 1 -> 4
4->1 5->4 求1 5 是否有通路 如果 start取 1 end取 5 一次bfs结果是 无通路
而实际 有 5 -> 4-> 1那就 不对了 |
|
c*******r 发帖数: 309 | 12 public class LowestCommonAncestor {
public boolean cover(Node root, Node node) {
if (root == null)
return false;
if (root == node)
return true;
return cover(root.left, node) || cover(root.right, node);
}
public Node Ancestor(Node root, Node node1, Node node2) {
if (root == null)
return root;
if (cover(root.left, node1) && cover(root.left, node2))
return Ancestor(root.left, node1, node2);
i... 阅读全帖 |
|
c*******r 发帖数: 309 | 13 public boolean cover(Node root, Node node) {
if (root == null)
return false;
if (root == node)
return true;
return cover(root.left, node) || cover(root.right, node);
}
public Node Ancestor(Node root, Node node1, Node node2) {
if (root == null)
return root;
if (cover(root.left, node1) && cover(root.left, node2))
return Ancestor(root.left, node1, node2);
if (cover(root.right, node1) && cover(roo... 阅读全帖 |
|
k*o 发帖数: 2 | 14 求牛人帮忙找bug。
题目是leetcode上的"Recover Binary Search Tree"。
思路是中序遍历,用递归做。
总是过不了OJ,在自己电脑上可以跑。
求大牛帮忙看看怎么回事。跪谢了!!!
我的代码如下:
public class Solution {
TreeNode node1 = null;
TreeNode node2 = null;
TreeNode last = null;
TreeNode current = null;
public void dfs(TreeNode root) {
if(root == null) {
return;
}
TreeNode left = root.left;
TreeNode right = root.right;
dfs(left);
last = current;
current = root;
if(last!=nul... 阅读全帖 |
|
j******3 发帖数: 16 | 15 unordered_set visited;
while(node1 != NULL)
{
visited.insert(node1);
node1 = node1->parent;
}
while(node2 != NULL)
{
if(visited.find(node2) != visited.end() ) break;
node2 = node2->parent;
}
return node2;
时空都是log(n),空手写的,错了轻喷 |
|
p*****2 发帖数: 21240 | 16 merge=(node1, node2)->
return node2 if !node1
return node1 if !node2
node1.right=merge(node1.right,node2)
return node1
deleteNode=(root, val)->
if(root.val==val)
root=merge(root.left,root.right)
else if(val
root.left=deleteNode(root.left,val)
else
root.right=deleteNode(root.right,val)
return root |
|
l**********9 发帖数: 537 | 17 这个流行的解法通不过 {0,1}的test case,上个星期还可以通过。看不出什么问题
,你们的还能通过吗?
public class Solution {
TreeNode node1 = null;
TreeNode node2 = null;
TreeNode prev = null;
public void recoverTree(TreeNode root) {
inorderTraverse(root);
int tmp = node1.val;
node1.val = node2.val;
node2.val = tmp;
}
private void inorderTraverse(TreeNode root) {
if (root == null)
return;
inorderTraverse(root.left);
if (prev != null) {
... 阅读全帖 |
|
|
|
H****g 发帖数: 14447 | 20 【 以下文字转载自 Military 讨论区 】
发信人: Herzog (singularity), 信区: Military
标 题: ”文革期间上海猪肉敞开供应“的四个出处
发信站: BBS 未名空间站 (Tue Oct 16 20:00:13 2012, 美东)
1. 《社会科学》2008年第8期,金大陆,《关于票证时代的集体记忆》
综上所述,上海自1955年至1992年的37年间,共五次采取凭票供应猪肉的办法。第一、
二次发生在“文革”运动爆发前。第三次发生在“文革”临近结束的两个多月前。第四
、五次则发生在改革开放初期。再做进一步检索,可知第二次和第三次间隔中的”1964
年6月1日到1976年7月15日,敞开供应共12年2个半月“。
http://www.docin.com/p-362597794.html
2. 《上海副食品商业志》
”在实行凭票定量供应的15年5个月中“,供应总量115万余吨,最低1961年人均1.36公
斤,最高1977年15.47公斤。
注:毛时代27年,27-15=12;1976-1964=12年。
http://www.shtong.gov.... 阅读全帖 |
|
|
|
j********2 发帖数: 82 | 23 Maintain a BBST with parent pointers. We insert into the tree upon each new
number, and we also maintain two pointers of consecutive nodes from which we
can calculate the median.
1. If size of the tree is even, return (node1+node2)/2.
2. O/w, return node1 or node2, depending on the relationship of newly
inserted element and node1/node2. |
|
c****7 发帖数: 13 | 24 原题是leetcode上的merge k sorted lists
http://discuss.leetcode.com/questions/204/merge-k-sorted-lists
这个题有好几种解法,比如divide and conquer, priority queue.
我写了个priority queue的。我的问题是, 如果现在要做 merge k sorted
array,怎样来设计这个priority queue才能最简单有效呢?
附上 merge-k-sorted-lists的代码
public static ListNode mergeKLists_priorityQueue(ArrayList kLists)
{
// border case
if(kLists.size()==0) return null;
if(kLists.size()==1) return kLists.get(0);
// create a Comparator based on the nod... 阅读全帖 |
|
H****g 发帖数: 14447 | 25 【 以下文字转载自 Military 讨论区 】
发信人: Herzog (singularity), 信区: Military
标 题: ”文革期间上海猪肉敞开供应“的四个出处
发信站: BBS 未名空间站 (Tue Oct 16 20:00:13 2012, 美东)
1. 《社会科学》2008年第8期,金大陆,《关于票证时代的集体记忆》
综上所述,上海自1955年至1992年的37年间,共五次采取凭票供应猪肉的办法。第一、
二次发生在“文革”运动爆发前。第三次发生在“文革”临近结束的两个多月前。第四
、五次则发生在改革开放初期。再做进一步检索,可知第二次和第三次间隔中的”1964
年6月1日到1976年7月15日,敞开供应共12年2个半月“。
http://www.docin.com/p-362597794.html
2. 《上海副食品商业志》
”在实行凭票定量供应的15年5个月中“,供应总量115万余吨,最低1961年人均1.36公
斤,最高1977年15.47公斤。
注:毛时代27年,27-15=12;1976-1964=12年。
http://www.shtong.gov.... 阅读全帖 |
|
H****g 发帖数: 14447 | 26 【 以下文字转载自 Military 讨论区 】
发信人: Herzog (singularity), 信区: Military
标 题: Re: 来,给毛轮上课讲文革
发信站: BBS 未名空间站 (Fri Oct 19 20:52:55 2012, 美东)
文革期间上海猪肉敞开供应的七个要点
(一) 关于上海档案馆
上海档案馆的资料恰恰证实了文革期间上海市不发肉票
发信站: BBS 未名空间站 (Thu Oct 18 17:22:27 2012, 美东)
上海档案馆的资料也证实了文革期间上海市不发肉票
上海档案馆网站上,有该馆保存的肉票样张名单。
文革前,上海市发肉票的时间是1964年的一季度。
→1964年1、2、3月份油票、糖票、肉票、大豆票、肥皂票、民用线券样张。
文革期间,仅在1967-1970年向少数民族以及郊县发肉票,市区不发肉票。这也印证了
金大陆以及上海地方志的说法。
→1967年1、2、3月份、第一季度少数民族油票、肉票及上半年度民用线券样张
→1967年7、8、9月份、第三季度少数民族油票、肉票及下半年度民用线券样张
→1968年1、2、3月份、第一季度少数民... 阅读全帖 |
|
|
|
|
|
|
|
|
|
H****g 发帖数: 14447 | 35 文革期间上海猪肉敞开供应的七个要点
(一) 关于上海档案馆
上海档案馆的资料恰恰证实了文革期间上海市不发肉票
发信站: BBS 未名空间站 (Thu Oct 18 17:22:27 2012, 美东)
上海档案馆的资料也证实了文革期间上海市不发肉票
上海档案馆网站上,有该馆保存的肉票样张名单。
文革前,上海市发肉票的时间是1964年的一季度。
→1964年1、2、3月份油票、糖票、肉票、大豆票、肥皂票、民用线券样张。
文革期间,仅在1967-1970年向少数民族以及郊县发肉票,市区不发肉票。这也印证了
金大陆以及上海地方志的说法。
→1967年1、2、3月份、第一季度少数民族油票、肉票及上半年度民用线券样张
→1967年7、8、9月份、第三季度少数民族油票、肉票及下半年度民用线券样张
→1968年1、2、3月份、第一季度少数民族油票、肉票及上半年度民用线券样张
→1968年7、8、9月份、第三季度少数民族油票、肉票及下半年度民用线券样张
→1968年10、11、12月份、第四季度少数民族油票、肉票及郊县油票样张
→1969年一季度、1、2、3月份油票、郊县油票、肉票及上半年度民用线券样... 阅读全帖 |
|
|
|
|
c***g 发帖数: 472 | 39 I guess the line 3 and line 4 is not correct.
If both the linked list is NULL but the carry is 1, it should create a
new node and the value is the carry, am I right?
Thanks so much!
2.4 You have two numbers represented by a linked list, where each node
contains a single digit. The digits are stored in reverse order, such
that
the 1’s digit is at the head of the list. Write a function that adds the
two numbers and returns the sum as a linked list.
EXAMPLE
Input: (3 -> 1 -> 5), (5 -> 9 -> 2)
Outpu... 阅读全帖 |
|
b****n 发帖数: 464 | 40 Keep
track
of
two
pointers
in the linked&
#8233; list,
and
start
them
at
the
beginning
of
the
linked
list.
At
each
iteration
of
the
algorithm,
advance
the
first
pointer
by
one
node
and
the
second
pointer by
two
nodes.
If
the
two ̷... 阅读全帖 |
|
p*****2 发帖数: 21240 | 41 好多简单题也没练过。赶紧写一个练练。
import java.io.*;
import java.util.*;
public class test
{
public static void main(String[] args)
{
new test().run();
}
PrintWriter out = null;
void run()
{
Scanner in = new Scanner(System.in);
out = new PrintWriter(System.out);
Node node4 = new Node(4, null, null);
Node node5 = new Node(5, null, null);
Node node2 = new Node(2, node4, node5);
Node node6 = new Node(6, null, null);
Node node7 ... 阅读全帖 |
|
S********g 发帖数: 45 | 42 请问第一题简化后的。。
是不是除了有可能有circle 和tree就一样
还有比如 graph 1的入口是node1,node1左边是node2 右边是node3
然后graph 2的入口是node1‘, node1’的左边是node2‘ 右边是node3’
也就是除了左右互换了 剩下都一样
这两个图算一样嘛?
我的想法是两个树同步 bfs 要用2个queue 对不对呢?
多谢! |
|
S********g 发帖数: 45 | 43 请问第一题简化后的。。
是不是除了有可能有circle 和tree就一样
还有比如 graph 1的入口是node1,node1左边是node2 右边是node3
然后graph 2的入口是node1‘, node1’的左边是node2‘ 右边是node3’
也就是除了左右互换了 剩下都一样
这两个图算一样嘛?
我的想法是两个树同步 bfs 要用2个queue 对不对呢?
多谢! |
|
g**********9 发帖数: 49 | 44 have a flat xml string:
n1n2n3n4
How to convert it into a tree structure below. Suppose you have a XML parser
can tell you getNextTag(); isTagStartingNode(); isTagEndNode(); isTagString
()
n1
/
n2
/ \
n3 n4
Any idea? |
|
s*******s 发帖数: 1031 | 45 我的代码,用递归做。不一定对 。。
// n1n2n3n4
n1
/
n2
/ \
n3 n4
string getNextTag();
bool isTagStartingNode(string tag);
bool isTagEndNode(string tag);
bool isTagString(string tag)
struct TreeNode {
string value;
TreeNode *left;
TreeNode *right;
TreeNode(string v) : value(v), left(NULL), right(NULL) {}
};
TreeNode *parse(string startTag) {
// no more nodes left
if(str.size() == 0)
retu... 阅读全帖 |
|
m********c 发帖数: 105 | 46 嗯,疏忽,竟然把那个写错了,多谢提醒!
内存泄露是有可能,但是我们不知道head是不是通过new创建的。比如下面的例子。
在函数里,*lpp = (*lpp)->next, 之前加上 delete *lpp
如下定义这个list node,
ListNode node1(1);
ListNode node2(1);
node1.next = &node2;
duplicateNode(&node1)的话就会报错,pointer being freed was not allocated |
|
y*******5 发帖数: 887 | 47 用composition pattern:
1:---
package NestedIterator;
public interface NestedNodeList extends Iterable {
}
2:---
package NestedIterator;
import java.util.Iterator;
public class Node implements NestedNodeList {
private E val;
public Node(E val) {
this.val = val;
}
@Override
public Iterator iterator() {
return new NodeIterator();
}
private class NodeIterator implements Iterator {
private boolean iterated = false;
@Override... 阅读全帖 |
|
v****s 发帖数: 1112 | 48 【 以下文字转载自 Programming 讨论区 】
发信人: vicfcs (ML+CV), 信区: Programming
标 题: mysql index优化求助
发信站: BBS 未名空间站 (Thu Feb 3 10:53:18 2011, 美东)
目前的一个project需要在mysql里面查询 两个node之间的value,
table columns:
LOOKUPTABLE (INT id, VARCHAR node1, VARCHAR node2, INT value)
问题是这个table有 10 millions rows, 一次select query时间大概是0.8 sec:
select value from LOOKUPTABLE where node1 = 'a' and node2 = 'b';
尝试用index来优化query,但是不知道最优的index应该是哪种?谢谢!包子有赏! |
|
c**t 发帖数: 2744 | 49 Oracle (10g), table A (id, Node, ...), where id, Node combination is unique.
How to query if Node1, Node2, ... with id1 exists where Node1,Node2.., id1
are parameters (inputs)? |
|
v****s 发帖数: 1112 | 50 【 以下文字转载自 Programming 讨论区 】
发信人: vicfcs (ML+CV), 信区: Programming
标 题: mysql index优化求助
发信站: BBS 未名空间站 (Thu Feb 3 10:53:18 2011, 美东)
目前的一个project需要在mysql里面查询 两个node之间的value,
table columns:
LOOKUPTABLE (INT id, VARCHAR node1, VARCHAR node2, INT value)
问题是这个table有 10 millions rows, 一次select query时间大概是 3 sec:
select value from LOOKUPTABLE where node1 = 'a' and node2 = 'b';
尝试用index来优化query,但是不知道最优的index应该是哪种?谢谢!包子有赏! |
|