小编Jac*_*ale的帖子

graph - 具有顶点权重的最短路径

这是一个消费税:

在某些图形问题中,顶点可以具有权重,而不是边缘权重或者与边缘权重相加.设Cv为顶点v的代价,C(x,y)为边的代价(x,y).该问题涉及在图G中找到顶点a和b之间的最便宜的路径.路径的成本是路径上遇到的边和顶点的成本之和.

(a)假设图中的每条边的权重为零(非边的成本为∞).对于所有顶点1≤v≤n,假设Cv = 1(即所有顶点具有相同的成本) .提供一种有效的算法来找到从a到b的最便宜路径及其时间复杂度.

(b)现在假设顶点成本不是恒定的(但都是正数),边缘成本保持如上.提供一种有效的算法来找到从a到b的最便宜路径及其时间复杂度.

(c)现在假设边缘和顶点成本都不是恒定的(但都是正数).提供一种有效的算法来找到从a到b的最便宜路径及其时间复杂度.


这是我的答案:

(a)使用正常的BFS;

(b)使用dijkstra算法,但用顶点权重代替权重;

(C)

也使用dijkstra的算法

如果只考虑边缘权重,那么对于dijkstra算法的关键部分,我们有:

if (distance[y] > distance[v]+weight) {
    distance[y] = distance[v]+weight; // weight is between v and y
}
Run Code Online (Sandbox Code Playgroud)

现在,通过考虑顶点权重,我们有:

if (distance[y] > distance[v] + weight + vertexWeight[y]) {
   distance[y] = distance[v] + weight + vertexWeight[y]; // weight is between v and y
}
Run Code Online (Sandbox Code Playgroud)

我对吗?

我猜我对(c)的回答太简单了,是吗?

algorithm graph dijkstra shortest-path data-structures

19
推荐指数
2
解决办法
2万
查看次数

OCaml中HttpRequest的最佳模块是什么

我希望使用OCaml访问Yahoo Finance API.从本质上讲,它只是一堆HTTP请求来获取雅虎财经的报价.

我应该使用哪个模块?

我希望有异步HTTP请求.

ocaml ocaml-batteries

19
推荐指数
1
解决办法
4425
查看次数

algorithm - 如何使用2n/3比较对0/1数组进行排序?

算法设计手册中,有这样的消费税

4-26考虑使用比较对n 0和1的序列进行排序的问题.对于两个值x和y的每次比较,算法学习x <y,x = y或x> y中的哪一个.

(a)给出一个算法,在最坏的情况下进行n-1次比较.表明您的算法是最佳的.

(b)给出一种算法,在平均情况下对2n/3次比较进行排序(假设n个输入中的每一个都是0或1,概率相等).表明您的算法是最佳的.

对于(a),我认为这很容易.我可以选择[n-1]作为枢轴,然后执行类似于快速分区的操作,扫描0到n - 2,找到左侧全部为0且右侧全部为1的中间点,这需要进行n - 1次比较.

但对于(b),我无法得到线索.它说"n个输入中的每一个都是0或1,概率相等",所以我想我可以假设0和1的数字相等?但是我怎样才能得到与1/3相关的结果?将整个阵列分成3组?

谢谢

sorting algorithm data-structures

18
推荐指数
1
解决办法
2036
查看次数

graph - 如果用hash表替换adjacency-list中的每个链表,有什么缺点?

在CLRS消费税22.1-8(我自学,不在任何大学)

假设每个数组条目Adj [u]不是链表,而是包含顶点v的哈希表,其中(u,v)∈E.如果所有边缘查找都具有相同的可能性,那么确定是否是边缘在图中?这个方案有什么缺点?为每个边缘列表建议一个替代数据结构来解决这些问题.与哈希表相比,您的替代方案是否有缺点?

因此,如果我用哈希表替换每个链表,则存在以下问题:

  1. 确定边是否在图中的预期时间是多少?
  2. 有什么缺点?
  3. 为每个边缘列表建议一个替代数据结构来解决这些问题
  4. 与哈希表相比,您的替代方案是否有缺点?

我有以下部分答案:

  1. 我认为预期的时间是O(1),因为我只是去Hashtable t = Adj [u],然后返回t.get(v);
  2. 我认为缺点是Hashtable会占用更多的空间然后链表.

对于其他两个问题,我无法得到线索.

任何人都可以给我一个线索?

hashtable graph adjacency-list data-structures

17
推荐指数
2
解决办法
6708
查看次数

最小生成树与最短路径树之间的差异

这是一个消费税:

要么证明以下内容,要么给出一个反例:

(a)无向图的最小生成树中的一对顶点之间的路径是否必须是最短(最小权重)路径?

(b)假设图的最小生成树是唯一的.在无向图的最小生成树中,一对顶点之间的路径是否必须是最短(最小权重)路径?

我的回答是

(一个)

不,例如,对于图0,1,2,0-1是4,2-2是2,2-0是5,那么0-2的真正最短路径是5,但是mst是0-1-2 ,在mst,0-2是6

(b)中

我的问题进入了这个(b).

我不明白怎么whether the MST is unique会影响最短的路径.

首先,我的理解是,当边的权重不明显时,可能同时存在多个MST,对吧?

其次,即使MST是唯一的,上述(a)的答案仍然适用于(b),对吧?

algorithm graph shortest-path minimum-spanning-tree data-structures

17
推荐指数
2
解决办法
2万
查看次数

微软访谈:转换矩阵

给定nxm的矩阵填充0和1

例如:

1 1 0 1 0

0 0 0 0 0

0 1 0 0 0

1 0 1 1 0

如果矩阵在(i,j)处有1,则用1​​填充列j和行i

即,我们得到:

1 1 1 1 1

1 1 1 1 0

1 1 1 1 1

1 1 1 1 1

所需复杂度:O(n*m)时间和O(1)空间

注意:您不能在矩阵条目中存储除"0"或"1"之外的任何内容

以上是Microsoft面试问题.

我想了两个小时了.我有一些线索,但不能再继续了.


好.这个问题的第一个重要部分是Even using a straight forward brute-force way,它不容易解决.

如果我只使用两个循环迭代矩阵中的每个单元格,并更改相应的行和列,则无法完成,因为生成的矩阵应基于原点矩阵.

例如,如果我看到a[0][0] == 1,我无法改变row 0column 0所有1,因为这将影响row 1因为row 1原来没有0.


我注意到的第二件事是,如果一行r只包含 …

algorithm bit-manipulation matrix space-complexity

16
推荐指数
2
解决办法
5226
查看次数

iphone - 当视图的阴影打开时,动画的表现非常差

我有一个UILabelCALayer阴影on.And我只是将它周围通过UIView动画.

性能很差,我可以看到动画根本不流畅.

我认为这是UILabel导致动画问题的阴影,因为如果我关闭阴影,动画会变得像平常一样平滑.

我试过用 view.layer.shouldRasterize = YES;

但动画表现仍然存在.

谁能给我一些提示?

谢谢

iphone performance animation shadow ipad

15
推荐指数
1
解决办法
4583
查看次数

如何设计一个允许在O(1)时间内搜索,插入和删除整数X的数据结构

这是"算法设计手册"一书中的练习(3-15).

设计一种数据结构,允许用户在O(1)时间内搜索,插入和删除整数X(即,恒定时间,与存储的整数总数无关).假设1≤X≤n并且有m + n个可用空间单位,其中m是任何时候表中可以包含的最大整数数.(提示:使用两个数组A [1..n]和B [1..m].)不允许初始化A或B,因为这将执行O(m)或O(n)操作.这意味着阵列中充满了随机垃圾,所以你必须非常小心.

我并不是真的想要答案,因为我甚至不明白这个练习是什么问题.

从第一句话开始:

设计一种数据结构,允许用户在O(1)时间内搜索,插入和删除整数X.

我可以轻松地设计这样的数据结构.例如:

因为1 <= X <= n,所以我只有n个槽的位向量,并且让X为数组的索引,当插入时,例如5,则a [5] = 1; 当删除时,例如5,则a [5] = 0; 当搜索,例如5,那么我可以简单地返回[5],对吗?

我知道这个练习比我想象的要难,但这个问题的关键点是什么?

language-agnostic algorithm data-structures

15
推荐指数
1
解决办法
5802
查看次数

任何人都可以清楚地解释删除左倾 - 红 - 黑树吗?

我学习Left-Lean-Red-Black tree,从Prof.Robert Sedgewick

http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf

虽然我已经理解了insert这个2-3 tree和那个LLRB,但是我花了大约40个小时现在已经有2个星期了,我仍然无法删除LLRB.

谁能真正解释deletionLLRB给我吗?

algorithm red-black-tree data-structures

15
推荐指数
1
解决办法
3072
查看次数

OCaml中的`string`是否支持UTF-8?

stringOCaml中的类型是否支持utf8

或者我应该为utf8字符串使用什么库?

ocaml functional-programming

14
推荐指数
1
解决办法
3842
查看次数