Python 求数组中要被给定数替换的元素数,使数组的和小于另一个给定数
我需要一个问题的帮助。假设给你一个排序数组“a”,它有“N”个元素和两个整数“X”和“Y”。现在要求您查找“A”中的元素数,您必须将其替换为“X”,以便数组“A”的和小于“Y”。给定的问题可以使用以下技术在O(n^2)中轻松解决(只有用于此操作的代码片段是特定的操作) 但是我想用一种更有效的方式来做这件事,有人能建议一种更有效的方式吗?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
提前感谢由于您的阵列已排序,您可以:
内,对于范围(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