您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

413. 等差数列划分

宝哥大数据 发布时间:2019-11-12 10:11:35 ,浏览量:0

一、413. 等差数列划分 1.1、题目描述

在这里插入图片描述

1.2.1、直接暴力法
class Solution:
    def numberOfArithmeticSlices(self, A: List[int]) -> int:
        count = 0

        n = len(A)
        for i in range(n-2):
            d = A[i] - A[i+1]
            for j in range(i+2, n): 
                if d == A[j-1] - A[j]: 
                    count += 1
                else:   # 一旦出现不满足,就不需要判断
                    break
        return count
1.2.2、递归
class Solution:
    def __init__(self):
        self.count = 0
    
    def numberOfArithmeticSlices(self, A: List[int]) -> int:
        self.slicens(A, len(A)-1)
        return self.count
        
    def slicens(self, A: List[int], i: int) -> int:
        if i  int:
        n = len(A)
        if n  int:
        n = len(A)
        if n  int:
        n = len(A)
        ans = 0

        count = 0
        # 
        for i in range(2, n):
            if A[i] - A[i-1] == A[i-1] - A[i-2]:
               count += 1
            else: 不满足, 前面有多个连续序列
                ans += count * (count + 1) // 2
                count = 0
        return  ans + count * (count + 1) // 2


关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0401s