小编tjz*_*zel的帖子

计算总和为给定值的所有唯一四元组 - N^3 复杂度算法是否已知?

我应该以尽可能低的时间复杂度来解决这个问题,但让我更具体一些。

给您一个包含重复项的排序整数数组。

唯一四元组是四个索引的集合。这些索引下的数组中的元素之和必须为给定值 X。例如:

  1. 给定一个数组 [10, 20, 30, 40] 且 X = 100,则只有一个四元组:(0, 1, 2, 3)。

  2. 给定一个数组 [0, 0, 0, 0, 0] 且 X = 0,则有 5 个四元组: (0, 1, 2, 3), (0, 1, 2, 4), (0, 1, 3 , 4), (0, 2, 3, 4), (1, 2, 3, 4)。

互联网上有很多 N^3 解决方案,但这些解决方案是针对值而不是索引的唯一四元组。在这些解决方案中,示例 1 仍仅给出一个四元组:(10, 20, 30, 40),但示例 2 只给出一个四元组 (0, 0, 0, 0),而不是其中的五个。

我找不到一个 O(N^3) 解决方案来代替另一个解决我的问题。我可以轻松地编写一个在 O(N^3logN) 时间内解决该问题的程序。我还听说这个问题的复杂度下限据称是未知的。是否有已知的 O(N^3) 解决方案?

我所知道的解决方案:

  1. 明显朴素的方法 O(N^4):

    int solution(int arr[], int arrSize, int X){ …
    Run Code Online (Sandbox Code Playgroud)

algorithm time-complexity

8
推荐指数
2
解决办法
672
查看次数

标签 统计

algorithm ×1

time-complexity ×1