我制作了一个类,该类有助于返回列表中前两个数字的索引,这些索引总计为一个特定的数字。由于我只需要两个索引,因此我使用了一个简单的double for循环来这样做。如果我不仅要返回两个数字的索引,还要返回n
个数字的索引,则此算法将需要n
个for循环。尽管它不是一种有效的算法,但是有什么方法可以创建n
个嵌套的for循环?另外,有什么有效的算法可从列表中获得第一个n
个索引,这些索引加起来等于一个特定的数量?
class findTarget:
def __init__(self, list, sum):
self.list = list
self.sum = sum
def findIndexes(self):
for number in self.list:
for number2 in self.list:
if number + number2 == self.sum:
return (self.list.index(number), self.list.index(number2))
return "No two numbers sum up to" + str(self.sum)
def findIndexesRemastered(self, numberOfIndexes):
#numberOfIndexes amount of nested for-loops
list = [2,5,7,2,7,8,9]
test = findTarget(list, 11)
print(test.findIndexes())