在 Python 中定义支持范围和的数据结构的程序
pythonserver side programmingprogramming更新于 2026/1/3 7:40:17
假设我们想要开发一个可以用整数列表构建的数据结构,并且有一个函数可以在我们需要时以高效的方式找到从索引 i 到索引 j-1 的元素之和。有两个函数。
- 构造函数,使用整数数组构造一个新实例。
- get_sum(i, j) 返回从起始索引 i 到结束索引 j-1 的数组元素的整数之和。
因此,如果输入为 array = [5,2,3,6,4,7,8,9,3,2],则构造一个对象 obj,并调用函数 obj.get_sum(1,5) 和 obj.get_sum(4,8),则输出将分别为 15 和 28。由于第一个范围元素为 [2,3,6,4],因此总和为 15,第二个范围元素为 [4,7,8,9],因此总和为 28。
为了解决这个问题,我们将遵循以下步骤 −
- 定义构造函数。这将采用数组
- sums := 这是一个列表,最初插入 0
- 对于数组中的每个 x,执行
- 在 sums 末尾插入 (x + (sums 的最后一项))
- 定义一个函数 get_sum()。这将采用 i, j
- 返回 sums[j] - sums[i]
示例
让我们看看下面的实现以便更好地理解 −
class RangeSum: def __init__(self, array): self.sums = [0] for x in array: self.sums.append(x + self.sums[-1]) def get_sum(self, i, j): return self.sums[j] - self.sums[i] array = [5,2,3,6,4,7,8,9,3,2] obj = RangeSum(array) print(obj.get_sum(1,5)) print(obj.get_sum(4,8))
输入
[5,2,3,6,4,7,8,9,3,2] obj.get_sum(1,5) obj.get_sum(4,8)
输出
15 28
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

