以下是一个示例代码,用于按出现顺序对数组元素进行分组并获取首尾索引:
def group_and_get_indices(arr):
groups = []
current_group = [arr[0]]
for i in range(1, len(arr)):
if arr[i] == arr[i-1] + 1:
current_group.append(arr[i])
else:
groups.append(current_group)
current_group = [arr[i]]
groups.append(current_group)
indices = []
for group in groups:
indices.append((group[0], group[-1]))
return indices
# 示例输入
arr = [1, 2, 3, 5, 6, 8, 9, 10]
# 预期输出: [(1, 3), (5, 6), (8, 10)]
result = group_and_get_indices(arr)
print(result)
该示例代码中的group_and_get_indices
函数接受一个数组作为输入,并返回一个包含首尾索引的列表。首先,它定义了一个空列表groups
,以及一个用于存储当前分组的列表current_group
。然后,通过遍历数组,将连续递增的元素添加到当前分组中,直到出现不连续的元素。在出现不连续的元素时,将当前分组添加到groups
列表中,并重新初始化current_group
。最后,遍历groups
列表,并将每个分组的首尾元素作为元组添加到indices
列表中,并返回indices
列表作为最终结果。
运行示例代码将输出[(1, 3), (5, 6), (8, 10)]
,表示输入数组的分组结果和每个分组的首尾索引。