Python程式:檢查序列是否能構成等差數列


假設我們有一個名為nums的數字列表。我們必須檢查nums中存在的元素是否構成等差數列。眾所周知,在等差數列中,任何兩個連續元素之間的公差都是相同的。

因此,如果輸入類似於nums = [9,1,17,5,13],則輸出將為True,因為如果我們對它們進行排序,它將是[1,5,9,13,17],並且這裡每對元素的公差都是4。

為了解決這個問題,我們將遵循以下步驟:

  • nums := 對列表nums進行排序

  • 如果nums中的元素個數 > 1,則

    • const := nums[1] - nums[0]

  • 否則,

    • 返回True

  • 對於i從0到nums的大小-1,執行以下操作:

    • 如果nums[i+1] - nums[i]與const不同,則

      • 返回False

  • 返回True

示例(Python)

讓我們看看下面的實現來更好地理解:

 線上演示

def solve(nums):
   nums = sorted(nums)

   if len(nums) > 1:
      const = nums[1] - nums[0]
   else:
      return True
   for i in range(len(nums)-1):
      if nums[i+1] - nums[i] != const:
         return False
   return True

nums = [9,1,17,5,13]
print(solve(nums))

輸入

[9,1,17,5,13]

輸出

True

更新於:2021年5月17日

2K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告