Arrays 函数,该函数用于确定数组中的数字是否由数组中的每个数字组成

Arrays 函数,该函数用于确定数组中的数字是否由数组中的每个数字组成,arrays,algorithm,pseudocode,Arrays,Algorithm,Pseudocode,我们有一个实数的集合/数组M。如果M中有s和t,则M中有一个数r r=s+t。 我们的目标是找到一个以O(n^2)为单位运行的算法(伪代码),该算法决定M中的每个r是否由r组成。数组按升序排序 我不知道如何在给定的时间复杂度下找到一个算法。 提前感谢您提供的每一个输入,因为O(N^2)是允许的,您只需使用两个循环来检查所有对的总和。散列映射中的所有数字,如果找到一对,则减少其计数。如果所有数字最后都有0个计数,则表示为每个元素找到了一个和对。简单的伪代码是: def func(array):

我们有一个实数的集合/数组M。如果M中有s和t,则M中有一个数r r=s+t。 我们的目标是找到一个以O(n^2)为单位运行的算法(伪代码),该算法决定M中的每个r是否由r组成。数组按升序排序

我不知道如何在给定的时间复杂度下找到一个算法。 提前感谢您提供的每一个输入

,因为
O(N^2)
是允许的,您只需使用两个循环来检查所有对的总和。散列映射中的所有数字,如果找到一对,则减少其计数。如果所有数字最后都有0个计数,则表示为每个元素找到了一个和对。简单的伪代码是:

def func(array):
    map = {}
    n = len(array)
    result = [false]*n
    for i in array:
        map[i] += 1

    for i in range(n):
        for j in range(n):
            temp = array[i]+array[j]
            if temp in map and map[temp] > 0:
                map[temp] -= 1

    for i in range(n):
        key = array[i]
        if key in map and map[key] == 0:
            result[i] = true

    return result

那么,因为在映射中使用哈希临时值是在固定时间内运行的?我认为这是我的问题,因为我认为检查map中的temp是否会在O(n)中运行。@MarvinBundschuh无序映射对于插入/搜索/更新操作通常具有O(1)复杂性。我认为代码应该决定每个数字是否“合成”。我能想到的所有数字组成的唯一数组是0的数组。@AbhinavMathur我认为这些问题是为了确定数组中的每个数字是否是复合的。我认为应该调整函数的返回值。@zois问题只是提到检查每个数字是否是复合的。除非另有规定,否则正确/错误的返回就足够了