J**********7 发帖数: 2619 | 1 BFS: bait finesse system.
我最近在BFS上花了一些钱, 看了下面的帖子发现一些基本理论还没有搞清楚.
烧钱没关系, 要烧的明白. 先看了下面这个帖子, 可以少烧不少钱.
http://www.thecarbonexchange.co.uk/viewtopic.php?f=24&t=50742&p
http://www.thecarbonexchange.co.uk/viewtopic.php?f=24&t=50743
BFS 是可以扔1g的, 上面link那个人就是扔1g, 但是他没说扔多远.
BFS能不能搞到kv的 1g 25米? 我现在看到是2g+plastic 25米是可以的. 我觉得瓶颈是
编织线对bc不友好. 编织线就是天生为spinning设计的, 编织线没出来前spinning对bc
没有优势.
如果不能用编织线, bc spinning 对轻饵差不多.
现在情况下允许用编织线, 我觉得BFS在3g以下完败于spinning, 4g~8g差不多. 10g 以
上bc完胜.
以上几行纯属信口开河,没有测试过.
声明:
BFS完全是烧器材, 跟实战和... 阅读全帖 |
|
l**********1 发帖数: 415 | 2 写了个练手,求牛人指正
public static TreeNode rebuild(int[] inorder,int[] bfs,int bfsl,int bfsh,int
inorderl, inorderh){
//base case
if(bsfl>=bfsh||inorderl>inorderh) return null;
TreeNode root=new TreeNode();
root.value=bfs[bfsl];
//find the index of root value in inorder array
int cutoff=findCut(inorder,inorderl,inorderh,bfs[bfsl]);
//build the tree recursively
root.right=rebuild(inorder,bfs,bfsl+1,bfsh,inorderl,cutoff-1);
root.left=rebuild(inorder,bfs,bfsl+2,bfsh,cutoff+1,inorderh);
return root;
}
publi... 阅读全帖 |
|
e*****e 发帖数: 1275 | 3 我觉得这题得用queue.
随便乱写了点,运行没有问题:
typedef struct bfs_binary_tree_info
{
binary_tree * parent;
//true for left child, false for right child
bool left_flag;
int * inorder;
int m;
int BFS_index;
}bfs_binary_tree_info;
binary_tree * build_binary_tree_from_inorder_BFS2 ( int inorder[], int m,
int BFS[], int BFS_index )
{
//verify input, make sure they are all valid
int root = BFS[BFS_index];
int root_in_index = -1;
queue tree_queue;
int... 阅读全帖 |
|
v******a 发帖数: 45075 | 4 CN班务 2 ----关于xexe 封SosoLD案和CN BFS
我不会撤xexe的职
这是目前peas, ahaau, bajahey等人抓住不放的焦点问题. 在我公布的班规里有” 在*任
何*情况下, BF不得封*任何*ID.”
这么做的主要想法是不想在腥风血雨的时候把我的BFS圈进来, 好让他们专心M,G文章, 整
理JHQ, 我也不用分心去应付对BFS封人标准的投诉.
我是上周晚饭前偶然在加拿大班ooo的贴子里看到自己当这个BM的. 写那个班规
也就是晚饭时想了想. 确实有不当甚至错误之处. 这句话就有很大漏洞. 漏洞在哪?
在我根本没考虑到有技术处理的问题.
SosoLD是xexe 的马甲. 当时plain被我封了后(plain在自己的贴里承认没有看过
班规, 所以不知道BFS不能封人.), 由于system bug, 在Notice没有通知, 去信
询问 xexe. Xexe明显缺乏”斗争”经验, 想想用自己的马家试试总该没事.
所以就给某些文字高手留下了把柄.
当时我收到complain后, 立即去信给bys, 说”这小子添乱, 我保不了他”, 并让bys 做
好要加大 |
|
p*****2 发帖数: 21240 | 5 看了看,感觉应该可以分两段。
BFS 可以看出7是root
indorder可以看出85是左树,496是右树
BFS又可以看出,8是左树的根,9是右树的根
7
/ \
8 9
\ / \
5 4 6
inorder: 857496
BFS: 789546 |
|
h****e 发帖数: 928 | 6 谢谢longway2008的支持。
flyinocean12,下面是书中的BFS算法,s是开始结点。
BFS(G, s)
1 for each vertex u in G.V - {s}
2 u.color = WHITE
3 u.d = INFINITY
4 u.parent = NIL
5 s.color = GRAY
6 s.d = 0
7 s.parent = NIL
8 Q = {};
9 ENQUEUE(Q, s)
10 while Q<>{}
11 u = DEQUEUE(Q)
12 for each v in G.Adj[u]
13 if v.color==WHITE
14 v.color = GRAY
15 v.d = u.d + 1
16 v.parent = u
17 ENQUEUE(Q,v)
18 u.color = BLACK
然后练习题是这么说的:
Ex 22.... 阅读全帖 |
|
z*********n 发帖数: 1451 | 7
一般情况都是dfs方便,尤其是需要打印某串路径,比如打出某个环的。而要判断是否
唯一sort结果,肯定bfs方便吧。比如1->2, 1->3,可以是1 2 3, 也可以是1 3 2,不
唯一。BFS这trivial啊,DFS咋整?肯定也能做出来,但肯定没BFS简单。 |
|
J**********7 发帖数: 2619 | 8 算不上super finesse.
BFS最高我觉得是扔1/8oz.
很多人扔1/16oz, 1/32oz.
如果你用上megabass IS finesse spool, 那跟BFS沾边.
BFS比spinning 高大上, 换bearing, 换spool家常便饭.
spinning上个kv的stella 1000s 完事了.
不需要自己改. |
|
s******y 发帖数: 17729 | 9 显然不能用BFS,尼玛机器算死了不要紧时间不够用啊,撑死限制深度的BFS |
|
g*******y 发帖数: 1930 | 10 DFS肯定是可以的,DFS用来找back edge,一个back edge就一定是回路
BFS对于有向图貌似不行,BFS只能找到cross edge,但是cross edge不一定构成回路。
不过对于无向图的话,cross edge就是回路了。 |
|
k***e 发帖数: 556 | 11 你平常是在哪找到的这些题目?能告知一下吗?我只知道careercup。
bfs can be used only for the undirected graph. it is easy to give a counter
example of directly graph that bfs did not work.
dfs works in both cases.
marking is definitely needed. |
|
w*****1 发帖数: 245 | 12 What kind of pages will you hit with a DFS versus a BFS?
到底有啥区别阿? 还看到有的地方说it is more polite to use BFS.
But why? |
|
k*******r 发帖数: 355 | 13 虽然一个子树在BFS 序列中会不连续,但我觉得这道题还是可以模拟preorder+inorder
用递归做,唯一要额外注意的就是要把不连续的BFS串抽出来拼成连续串(以便这个连
续串对应一个子树)
code写起来也不麻烦,十几行吧,请高手指正
struct node{node * l,r; int id;}
node * f(int b[], int i[], int len){
if (len==0){return NULL}
node * h=new node; h->id=b[0]; h->l=NULL; h->r=NULL;
if (len==1){ return h;}
int k=findhead(b[0], i); map m;
int *newi=new int[k]; for (int j=0; j
int *newb=new int[k]; for (int j=0; j阅读全帖 |
|
O******i 发帖数: 269 | 14 一票子的题目到他手里都能用BFS或者DFS解决。
二爷应该写个BFS的总结出来。 |
|
c**l 发帖数: 2661 | 15 dfs 用递归 大数据不行吧
反正我用dfs大数据搞死过 后来全部用非递归
都用非递归的话
我怎么感觉用 bfs会稍微好点 尤其是 深度比宽度大的情况
此时 bfs 基本是宽度的复杂度 |
|
b*****u 发帖数: 648 | 16 具体原理记得不太清楚了,但是直观上应该和节点的结构有关。
比如每个节点只有指向孩子节点的指针,root 已知,就不太好Inorder
关于dfs vs. bfs 马上能想到的一个例子是华容道, 给定一个开始pattern和一个结束
pattern,求路径,比较靠谱的办法是从两端开始同时进行bfs,在中间相遇。 |
|
f*******w 发帖数: 1243 | 17 树就是图的一种啊,为什么不能BFS, DFS
你说说一个树和一个有向图在表现形式上有什么区别?
BFS就是level order
DFS的话可以是inorder, preorder, postorder |
|
j**********3 发帖数: 3211 | 18 我的代码,Time Limit Exceeded.
自己拖下来放到eclipse里边,跑到死机了。。。到底哪里出错了?
public int numIslands(char[][] grid) {
if(grid == null){
return 0;
}
int m = grid.length;
if(m == 0){
return 0;
}
int n = grid[0].length;
char c = 'A';
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
if (grid[i][j] == '1') {
bfs(grid, i, j, c, m, n);
c = (char)(c + 1)... 阅读全帖 |
|
s******7 发帖数: 1758 | 19 bfs每次走完一个queue需要一个数组来记录访问过没有,这又不是tree, 好多格子重复
访问, 回去好好看看bfs吧,这是基本功 |
|
d******4 发帖数: 132 | 20 需要检测graph是否有cycle吧?leetcode将这题放到BFS里面, 用BFS怎么做? |
|
s**********g 发帖数: 14942 | 21 你说反了吧
你的描述下 dfs比bfs简洁啊(一般也是这么认为的吧)
不像是你说的bfs比dfs简洁
大。 |
|
z*********n 发帖数: 1451 | 22 都要,有些DFS非常好写,BFS很麻烦。但有些只能用BFS,DFS非常麻烦。 |
|
t****b 发帖数: 2484 | 23 万一硬度人来个followup呢 你写个dfs 他问你能不能bfs 你写个bfs 他问你能不能
试试dfs |
|
J**********7 发帖数: 2619 | 24 BFS还真不是为了钓鲈的.
BFS美国玩的少. 美国淡水也就好(4声)钓个鲈, 用不上这个.
澳大利亚好钓bream的, 即太阳鱼, 可能他们觉得sunfish比bass要高大上.
有点英伦味. bass是红脖钓的. 尽管他们那儿也有bass. |
|
h*****n 发帖数: 286 | 25 【 以下文字转载自 JobHunting 讨论区 】
发信人: hsteven (Steven), 信区: JobHunting
标 题: 问个题:use caching for parallel BFS
发信站: BBS 未名空间站 (Wed Feb 15 21:00:29 2012, 美东)
How to take advantage of caching for parallel BFS (like friend search in
large social network) across distributed systems?
Thanks a lot! |
|
w********p 发帖数: 948 | 26 DFS可以用back edge来判断是否有loop
BFS 稍微改点code, 对有向图,无向图也都可以 |
|
w********p 发帖数: 948 | 27 我也想知道大家都做些啥题
check circle in direct Graph G by BFS
If any logic error, please correct me
BFSCheckCircleDirectedGraph(G, s) { O(V+E)
For all vertex i in vertex[G] –s
color[i] = white
parent[i]=Null;
degree[i]=0;
color[s]=Gray;
parent[s]=Null;
degree[i]=0;
Enqueue (root s);
while Queue != 0
i = head of Queue
for each adjacency vertex j of vertex i
if color[j] == while then
color[j] = Gray;
degree[j] = degree[i]+1;
parent[j] = i;
|
|
k***e 发帖数: 556 | 28 你加了一个checkCircle,对于每个新grey的点再做bfs于已变色的vertices上,看是否
会回到该点。应该是正确的,时间复杂度为O(V^2).
ps,你说下伪码就可以了,我最怕读别人的代码来 :) |
|
g*******y 发帖数: 1930 | 29 check circle有问题。你check circle中,怎么能用BFS里标记的颜色呢。
另外,一个check circle本质就是一个DFS(按照你的递归写法)。你想想,你的程序里
面得调用多少次check circle |
|
H*M 发帖数: 1268 | 30 你们为什么非得用BFS?
DFS不是很简单很standard的吗? |
|
g*******y 发帖数: 1930 | 31 我前面的回帖就说了,DFS做这个挺好的,BFS不合适。 |
|
H*M 发帖数: 1268 | 32 就是啊 DFS一个经典用处不就是这个吗
难道interviewer故意为难同学们用BFS...也太令人发指了吧 |
|
w********p 发帖数: 948 | 33 这个额也没法子,n 年前,被面试 问道如何用bfs, dfs, 找circle。 反正答得乱的很 |
|
b****r 发帖数: 1272 | 34 记得一次面一个financial firm时候,那人说他们实际中bfs用的很少 但是也没说怎么
get around |
|
l*****g 发帖数: 685 | 35 严格地说 degree bounded 好像是既有upper bound, 又有lower bound (leaf nodes
除外)
举个特例,balanced BST应该符合这个要求吧?但想不出怎么做BFS traverse with O(
1) space |
|
h*****n 发帖数: 286 | 36 How to take advantage of caching for parallel BFS (like friend search in
large social network) across distributed systems?
Thanks a lot! |
|
h*****g 发帖数: 312 | 37 7
/ \
8 9
\ / \
5 4 6
inorder: 857496
BFS: 789645
如何 重构这个二叉树,然后求树的宽度(哪一层node最多?) |
|
|
h*****y 发帖数: 218 | 39 题目没有看清楚
是BFS and inorder |
|
c******w 发帖数: 1108 | 40 preorder+inorder 和 BFS+inorder没有本质区别 |
|
h****e 发帖数: 928 | 41 书中声称结点不涂成灰色也不会影响算法的正确性。
我觉得这是有问题的:最短路径的长度不会有问题,但是要是
要打印出最短路径就会有问题。如下是一个简单的3个结点的
有向图:
R
/ \
/ \
v v
Y <----- U
假定BFS开始,所有结点都是白色。
从R开始,R->U, 然后R->Y,R涂成黑色。Y和U的父结点都是R。
现在到U,因为U没有涂成灰色,Y的父结点就变成U了。最后
在打印R到U的最短路径就变成R->U->Y。这显然是错的。
各位大虾看看我什么地方想错了吗? |
|
d****o 发帖数: 1055 | 42 它给出的答案指的是从start点到end点。有方向的。所以一次bfs就够了 |
|
h*******e 发帖数: 1377 | 43 感觉答案 把 条件加强了 很可能 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那就 不对了 |
|
p*****2 发帖数: 21240 | 44 其实leetcode才是真正的BFS专家。我比较擅长DFS。这个确实有可以总结的地方。因为
DFS的代码其实特别雷同。 |
|
i******t 发帖数: 22541 | 45 flood fill为什么用DFS 而不是BFS? 求解 谢谢 |
|
|
r********n 发帖数: 7441 | 47 dp是求解多阶段问题的通用算法(任何多阶段问题都可以用dp来建模),而只有特殊的
dp (一般也叫toy model,比如八皇后问题等)可以把模型建成recursive型的
感觉上,dp算法的本身属性就决定了只能用bfs而不能用dfs, or not? |
|
c********p 发帖数: 1969 | 48 bfs需要个queue,可是dfs用递归也不省空间阿。
而且又慢。。。
有啥好处呢? |
|
c********p 发帖数: 1969 | 49 可是,就算是boolean的话,也是bfs好吧? |
|
c********p 发帖数: 1969 | 50 。。。。。。这个我当然知道。。。。。
可是我们一般做题,不都是用bfs么。。。
你如果知道要找的在哪,还用找么。。。 |
|