📅  最后修改于: 2023-12-03 15:23:04.610000             🧑  作者: Mango
本题为ISRO CS 2020编程题第73题,题目要求编写一个函数,接受一个整数数组作为参数,返回这个数组是否为等差数列。
请编写一个函数,判断一个整数数组是否为等差数列。等差数列是指数组中每个元素之间的差值都相等。
函数原型如下:
def is_arithmetic(num_list: List[int]) -> bool:
pass
assert is_arithmetic([1, 2, 3, 4, 5]) == True
assert is_arithmetic([1, 3, 5, 7, 9]) == True
assert is_arithmetic([1, 2, 4, 8, 16]) == False
本题采用Python语言实现。
按照题意,如果一个数列为等差数列,则所有元素之间相差的差值应该相等。因此,我们可以遍历数组,计算相邻元素之间的差值,若差值不相等,则返回False。
具体实现如下:
from typing import List
def is_arithmetic(num_list: List[int]) -> bool:
# 如果数组只有一个元素或没有元素,则为等差数列
if len(num_list) <= 2:
return True
# 计算相邻元素之间的差值
delta = num_list[1] - num_list[0]
for i in range(2, len(num_list)):
if num_list[i] - num_list[i-1] != delta:
return False
return True
本题实现较为简单,通过计算相邻元素之间的差值来判断是否为等差数列。注意处理数组为空或只有一个元素的情况。