等差数列划分Python解法
生活随笔
收集整理的這篇文章主要介紹了
等差数列划分Python解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果一個數列 至少有三個元素 ,并且任意兩個相鄰元素之差相同,則稱該數列為等差數列。
例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差數列。
給你一個整數數組 nums ,返回數組 nums 中所有為等差數組的 子數組 個數。
子數組 是數組中的一個連續序列。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/arithmetic-slices
?
列:
輸入:nums = [1,2,3,4] 輸出:3 解釋:nums 中有三個子等差數組:[1, 2, 3]、[2, 3, 4] 和 [1,2,3,4] 自身。 class Solution(object):def numberOfArithmeticSlices(self, nums):""":type nums: List[int]:rtype: int"""i, res = 0, 0 # 判斷下標,結果while i <= len(nums) - 3: # 最少需要三個判斷值j = i + 1 # 后一位differ = nums[j] - nums[i] # 等差值while j + 1 < len(nums) and nums[j+1] - nums[j] == differ: # 等差值存在j += 1 # 向后判斷res += (j-i) * (j-i-1) // 2 # 數學問題i = j # 判斷的最后一位開始重新判斷return res # 返回結果總結
以上是生活随笔為你收集整理的等差数列划分Python解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 破产边缘疯狂试探 维珍轨道再延长暂停运营
- 下一篇: 单词拆分Python解法