小编Ton*_*y L的帖子

给定 100 亿个 URL,每个 URL 平均长度为 100 个字符,检查重复

假设我有 1GB 可用内存,如何在这些 url 中找到重复项?

我在“破解编码面试”一书中看到了一个解决方案,它建议在第一次扫描时使用哈希表将这些 url 分成 4000 个文件 x.txt, x = hash(u)%4000。在第二次扫描中,我们可以单独检查每个 x.txt 文件中的重复项。

但是我如何保证每个文件会存储大约 1GB 的 url 数据?我认为某些文件有可能比其他文件存储更多的 url 数据。

我对这个问题的解决方案是迭代地实现文件分离技巧,直到文件小到足以容纳我可用的内存为止。

有没有其他方法可以做到?

memory algorithm scalability

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

C 函数原型范围内的声明点

在 C 函数原型范围内声明形式参数有什么意义?

\n

从我自己的测试来看,原型范围中形式参数的声明点似乎遵循从左到右的顺序(参数名称按从左到右的顺序在原型范围内可见),但我不是当然。您能解释一下这一点或指出我正确的地方吗?

\n

案例1:gcc对c99标准没有投诉

\n
int sum(int n, int a[n]); \n
Run Code Online (Sandbox Code Playgroud)\n

情况 2:来自带有 c99 标准的 gcc 的“错误:\xe2\x80\x98n\xe2\x80\x99 此处未声明(不在函数中)”

\n
int sum(int a[n], int n);\n
Run Code Online (Sandbox Code Playgroud)\n

上述两种情况都放置在文件作用域下,文件作用域中没有名为 n 的变量。

\n

c scope function-prototypes

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

标签 统计

algorithm ×1

c ×1

function-prototypes ×1

memory ×1

scalability ×1

scope ×1