假设我有 1GB 可用内存,如何在这些 url 中找到重复项?
我在“破解编码面试”一书中看到了一个解决方案,它建议在第一次扫描时使用哈希表将这些 url 分成 4000 个文件 x.txt, x = hash(u)%4000。在第二次扫描中,我们可以单独检查每个 x.txt 文件中的重复项。
但是我如何保证每个文件会存储大约 1GB 的 url 数据?我认为某些文件有可能比其他文件存储更多的 url 数据。
我对这个问题的解决方案是迭代地实现文件分离技巧,直到文件小到足以容纳我可用的内存为止。
有没有其他方法可以做到?
在 C 函数原型范围内声明形式参数有什么意义?
\n从我自己的测试来看,原型范围中形式参数的声明点似乎遵循从左到右的顺序(参数名称按从左到右的顺序在原型范围内可见),但我不是当然。您能解释一下这一点或指出我正确的地方吗?
\n案例1:gcc对c99标准没有投诉
\nint sum(int n, int a[n]); \n
Run Code Online (Sandbox Code Playgroud)\n情况 2:来自带有 c99 标准的 gcc 的“错误:\xe2\x80\x98n\xe2\x80\x99 此处未声明(不在函数中)”
\nint sum(int a[n], int n);\n
Run Code Online (Sandbox Code Playgroud)\n上述两种情况都放置在文件作用域下,文件作用域中没有名为 n 的变量。
\n