📌  相关文章
📜  国际空间研究组织 | ISRO CS 2020 |第 73 题(1)

📅  最后修改于: 2023-12-03 15:23:04.610000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2020 | 第73题

本题为ISRO CS 2020编程题第73题,题目要求编写一个函数,接受一个整数数组作为参数,返回这个数组是否为等差数列。

题目描述

请编写一个函数,判断一个整数数组是否为等差数列。等差数列是指数组中每个元素之间的差值都相等。

函数原型如下:

def is_arithmetic(num_list: List[int]) -> bool:
    pass
输入
  • 一个整数数组(num_list),1 <= num_list长度 <= $10^3$,$|num_i| <= 10^9$。
输出
  • 如果数组是等差数列,则返回True,否则返回False。
示例
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
总结

本题实现较为简单,通过计算相邻元素之间的差值来判断是否为等差数列。注意处理数组为空或只有一个元素的情况。