求算法高手,哪怕解决其中一个也不忘您的大恩大德!!
1.在两个一维整数数组,在里面找相同的元素,找到输出该元素,找不到给提示,要求在O(nlongn)时间内完成。
2.针对一个无向图,在图中找到一个环,要求在线性时间内完成。
3.给定一个带权无向图,找它的一个生成树,要求生成树的权值是所有生成树里最大的。
4.在线性时间内完成,把一个整数数组平分成两个数组,要求一个数组里的元素比另一个数组都要小。
[解决办法]
1、排序,然后从头到尾走一遍,检查有没有相同的。
2、BFS一下,读过的就标志一下,BFS过程中如果发现被标识过的,就是有环。(对于无向图,走过可以就把边删掉)
3、对所有权取负数,然后找最小生成树,不知道是否可行
4、用NthElement找中位数,是线性时间,然后用该数来划分数组即可
[解决办法]
1.两数组合并然后排序,一次遍历查找相同的。O(nlogn)
2.链表定义一个标记,从一个节点开始遍历,一边遍历一边标记。如果发现标记的节点,则有环。O(N)
3.prim最大树,最小树改为最大树。
4,STLpatition函数,可以参考其源码。
[解决办法]
第四个应该用nth_element函数
[解决办法]
有意思,但现在太困了。
[解决办法]
高手实在是多啊,不得不赞!
[解决办法]
MARK
[解决办法]
1L是对的
[解决办法]
1L 强人
[解决办法]