小编Mic*_*cio的帖子

当A和B被排序时,找到最小A [i] ^ 2 + B [i] ^ 2

给定两个数组AB长度n.A按升序B排序,按降序排序.查找i"产品" A[i]^2 + B[i]^2最小的索引.

我需要一个解决方案,O(log(n))其中包含所需的复杂性.

示例案例:

>>> A
[0, 4, 10, 12, 17, 28, 31, 32, 35, 39]
>>> B
[39, 34, 34, 31, 27, 23, 19, 11, 3, 2]
Run Code Online (Sandbox Code Playgroud)

这里"乘积"被i = 4最小化

>>> [A[i]**2 + B[i]**2 for i in range(10)]
[1521, 1172, 1256, 1105, 1018, 1313, 1322, 1145, 1234, 1525]
>>> min(range(10), key=lambda i: A[i]**2 + B[i]**2)
4
Run Code Online (Sandbox Code Playgroud)

arrays algorithm

15
推荐指数
3
解决办法
251
查看次数

斐波那契堆上每个操作的最坏情况时间界限是多少?

斐波那契堆在摊销意义上是有效的,但在最坏的情况下它们的效率如何?具体来说,在 n 节点斐波那契堆上,这些操作中的每一个的最坏情况时间复杂度是多少?

  • 找到最小值
  • 删除分钟
  • 插入
  • 减键
  • 合并

algorithm big-o time-complexity data-structures fibonacci-heap

2
推荐指数
1
解决办法
3001
查看次数

从套接字读取一个字节与多个字节

我必须从套接字读取未知长度的数据。我需要等待特定的字符序列停止读取。

一次只读取一个字节是个好主意吗?最大长度是4096。我知道从套接字读取应该以尽可能大的读取大小来实现,但是在我的情况下,当最大长度不长时,这是一个好的解决方案吗?

这样的阅读会产生什么后果?

缓冲区溢出?

c c++ unix sockets

2
推荐指数
1
解决办法
2340
查看次数

Haskell < - 用符号表示

众所周知,<-do块中只是语法糖>>=,但是<-在Haskell源中的任何地方定义,或者它只是语法语法的一部分的语法结构,因此解析器只是<-用适当的形式替换每一个>>=

monads haskell functional-programming

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