Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求数组中要被给定数替换的元素数,使数组的和小于另一个给定数_Python_Arrays - Fatal编程技术网

Python 求数组中要被给定数替换的元素数,使数组的和小于另一个给定数

Python 求数组中要被给定数替换的元素数,使数组的和小于另一个给定数,python,arrays,Python,Arrays,我需要一个问题的帮助。假设给你一个排序数组“a”,它有“N”个元素和两个整数“X”和“Y”。现在要求您查找“A”中的元素数,您必须将其替换为“X”,以便数组“A”的和小于“Y”。给定的问题可以使用以下技术在O(n^2)中轻松解决(只有用于此操作的代码片段是特定的操作) 但是我想用一种更有效的方式来做这件事,有人能建议一种更有效的方式吗? 提前感谢由于您的阵列已排序,您可以: 计算数组的和(O(n)) 检查是否已保存\u sum您所说的更高效是什么意思?我想知道这是否可能在O(n)时间或O(n l

我需要一个问题的帮助。假设给你一个排序数组“a”,它有“N”个元素和两个整数“X”和“Y”。现在要求您查找“A”中的元素数,您必须将其替换为“X”,以便数组“A”的和小于“Y”。给定的问题可以使用以下技术在O(n^2)中轻松解决(只有用于此操作的代码片段是特定的操作)

但是我想用一种更有效的方式来做这件事,有人能建议一种更有效的方式吗?
提前感谢

由于您的阵列已排序,您可以:

  • 计算数组的和(O(n))

  • 检查是否已保存\u sum您所说的更高效是什么意思?我想知道这是否可能在O(n)时间或O(n log n)时间
    内,对于范围(n)中的k:sum+=A[k]
    似乎不正确,因为它每次执行时都没有重置sum,并且在第一个循环之前sum被初始化为none。我将保持sum=0来修复这个问题,希望这能奏效
    sum = None
    count = None
    for i in range(N):
       for j in range(i):
            A[j] = X
            count += 1
       for k in range(N):
            sum += A[k]
       if sum==Y:
            print(count)
            count = 0
            break