如何制作一个可以将间隔求和到嵌套数组中的函数?
How to make a fuction that can sum the Intervals into a nested array?
我有一个大学练习,我仍然无法解决这个问题。 (python)
这是我的问题:
编写名为 sumIntervals
的函数的代码,该函数采用空格列表和 returns 空格长度的总和。注意:重叠的间隔只能测量一次。
例如:
sumIntervals([[1,2], [6, 10], [11, 15]]) # Returns 9
sumIntervals([[1,4], [7, 10], [3, 5]]) # Returns 7
sumIntervals ([[1,5], [10, 20], [1, 6], [16,19], [5,11]]) # Returns 19
我已经做了一部分,但是没用。
p = []
s = 0
for i in list1:
p.append(i[1] - i[0])
set(p)
list(p)
for c in p:
s = s + c
list1 是包含子区间的列表,s 是包含总和的变量
我会这样做:
基本上我们在这里做的是将该输入列表分成不同的块,我们将这些块存储为 keyIndex
从那里我们 运行 另一个第二个 for 循环只是为了单独添加数字的差异,所以 [6,10]
会变成 [6,7,8,9]
来表示 10-6 = 4 的差值。最后我们将使用 set()
方法来删除任何重复项,因为你说你想要重叠只算了一个
myList = ([[1,5], [10, 20], [1, 6], [16,19], [5,11]])
def sumIntervals(inputList):
output = []
for keyIndex in range(len(inputList)):
for keyDifference in range(inputList[keyIndex][0], inputList[keyIndex][1]):
output.append(keyDifference)
output = set(output)
print(len(output))
sumIntervals(myList)
你可以使用集合(或字典)来处理这里的主要挑战:避免
重叠造成的重复计算。例如:
def sum_intervals(intervals):
return len(set(
i
for a, b in intervals
for i in range(a, b)
))
tests = (
[[1,2], [6, 10], [11, 15]],
[[1,4], [7, 10], [3, 5]],
[[1,5], [10, 20], [1, 6], [16,19], [5,11]],
)
for t in tests:
print(sum_intervals(t)) # 9 7 19
我有一个大学练习,我仍然无法解决这个问题。 (python)
这是我的问题:
编写名为 sumIntervals
的函数的代码,该函数采用空格列表和 returns 空格长度的总和。注意:重叠的间隔只能测量一次。
例如:
sumIntervals([[1,2], [6, 10], [11, 15]]) # Returns 9
sumIntervals([[1,4], [7, 10], [3, 5]]) # Returns 7
sumIntervals ([[1,5], [10, 20], [1, 6], [16,19], [5,11]]) # Returns 19
我已经做了一部分,但是没用。
p = []
s = 0
for i in list1:
p.append(i[1] - i[0])
set(p)
list(p)
for c in p:
s = s + c
list1 是包含子区间的列表,s 是包含总和的变量
我会这样做:
基本上我们在这里做的是将该输入列表分成不同的块,我们将这些块存储为 keyIndex
从那里我们 运行 另一个第二个 for 循环只是为了单独添加数字的差异,所以 [6,10]
会变成 [6,7,8,9]
来表示 10-6 = 4 的差值。最后我们将使用 set()
方法来删除任何重复项,因为你说你想要重叠只算了一个
myList = ([[1,5], [10, 20], [1, 6], [16,19], [5,11]])
def sumIntervals(inputList):
output = []
for keyIndex in range(len(inputList)):
for keyDifference in range(inputList[keyIndex][0], inputList[keyIndex][1]):
output.append(keyDifference)
output = set(output)
print(len(output))
sumIntervals(myList)
你可以使用集合(或字典)来处理这里的主要挑战:避免 重叠造成的重复计算。例如:
def sum_intervals(intervals):
return len(set(
i
for a, b in intervals
for i in range(a, b)
))
tests = (
[[1,2], [6, 10], [11, 15]],
[[1,4], [7, 10], [3, 5]],
[[1,5], [10, 20], [1, 6], [16,19], [5,11]],
)
for t in tests:
print(sum_intervals(t)) # 9 7 19