是否可以编写一个程序来打印从大小为 n 的输入数组中添加到 k 的所有对
是否可以编写一个程序来打印从大小为 n 的输入数组中添加到 k 的所有对。如果是这样怎么办?我听说这个问题是NP完全问题。我想知道我们是否可以用 C/C++ 等典型编程语言提供解决这个问题的方法
Is it possible to write a program to print all pairs that add to k from an input array of size n. If so how? I heard this problem is NP-Complete. I was wondering if we can provide a solution to this problem in typical programming languages like C/C++
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它不可能是 NP 完全的,因为有一个明显的 O(n^2) 解决方案,在数组上有两个嵌套循环并检查总和是否为 k。
然而,有一个使用哈希表的 O(n) 解决方案。这是 C# 中的解决方案:
It can't be NP-Complete as there is an obvious O(n^2) solution with two nested loops over the array and checking if the sum is k.
There is however an O(n) solution using hashtable. Here is the solution in C#: