📅  最后修改于: 2023-12-03 14:56:54.227000             🧑  作者: Mango
我们需要编写一个函数来找到给定数组中在索引范围[L,R]内出现的1的个数。
我们可以使用循环来遍历数组中的元素,并使用一个计数器来记录出现的1的个数。对于给定的索引范围[L,R],我们只需要考虑该范围内的元素。我们可以使用一个for循环来遍历索引L到R之间的元素,并检查每个元素是否等于1。如果是,则增加计数器的值。
下面是一个示例程序来实现这个功能:
def count_ones_in_range(arr, L, R):
count = 0
for i in range(L, R+1):
if arr[i] == 1:
count += 1
return count
在上面的示例代码中,arr
是输入的数组,L
和R
是给定的索引范围。我们使用 range(L, R+1)
来获取从L到R之间的索引。然后,我们检查每个索引对应的元素是否等于1,并相应地增加计数器的值。最后,我们返回计数器的值作为结果。
你可以按照以下方式使用上述函数:
arr = [0, 1, 1, 0, 1, 0, 1]
L = 1
R = 5
result = count_ones_in_range(arr, L, R)
print(f"The number of 1s in range [{L}, {R}] is {result}")
输出:
The number of 1s in range [1, 5] is 3
通过使用循环和计数器变量,我们可以找到给定数组中[L,R]范围内出现的1的个数。这个问题的算法复杂度为O(N),其中N是给定数组的长度。