美文网首页100天代码挑战
100天代码挑战:DAY9

100天代码挑战:DAY9

作者: 共醉明月Nessa | 来源:发表于2018-09-20 18:04 被阅读0次

LeetCode 413. 等差数列划分

如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。

例如,以下数列为等差数列:
1, 3, 5, 7, 9
7, 7, 7, 7
3, -1, -5, -9

以下数列不是等差数列。
1, 1, 2, 5, 7

数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。

如果满足以下条件,则称子数组(P, Q)为等差数组:
元素 A[P], A[p + 1], ..., A[Q - 1], A[Q] 是等差的。并且 P + 1 < Q 。

函数要返回数组 A 中所有为等差数组的子数组个数。

示例:
A = [1, 2, 3, 4]
返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]。

我的答案:

class Solution {
public:
    int numberOfArithmeticSlices(vector<int>& A) {
        vector<long> seqLen;
        long len = 0;
        int ans = 0;
        if(A.size() < 3) return 0;
        for(int i=0; i<A.size()-2; i++){
            len = 0;
            while(A[i+1]-A[i] == A[i+2] - A[i+1]){
                len++;
                i++;
                if(i == A.size()-2) break;
            }
            //这里不能有i++!若有,则检测:
            //[2]-[1] == [4]-[3]; [8]-[7] == [6]-[5];
            //未检测[6]-[5] == [4]-[3];
            seqLen.push_back(len + 2);
        }
        for(int i=0; i<seqLen.size(); i++){
            if(seqLen[i] > 2){
                for(int j = seqLen[i]; j>2; j--){
                    ans = ans + seqLen[i] - j + 1;
                }
            }
        }
        return ans;
    }
};

相关文章

  • 100天代码挑战:DAY9

    LeetCode 413. 等差数列划分 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等...

  • Q型驱动力 90天挑战 Day9(2017.1.25)

    QDrive Quests 成为Q型驱动领导90天挑战第9天: Day9 – Take on listening ...

  • 为什么听过那么多道理,却依然过不好这一生

    挑战自己:连续365天,每日一篇双语日记,Day9 Sunday, October 15, 2017 Overca...

  • 挑战day9

    【早起】:完成 【日常】: 上午,葬礼,拜访亲戚,祭祖 下午,hair style 【反思】:满满的一天,没有学习...

  • 《孤独读书术》

    Day9/21 阅读北滘+21天阅读挑战 【书籍名称】 《孤独读书术》 作者:[德]叔本华 【阅读感受】 在知识爆...

  • 设计爱

    Day9/21 【21天阅读挑战】 【书籍名称】 《如何得到你想要的婚姻与爱情》 作者:杨冰阳 【阅读感受】 书中...

  • 叶子姑娘自律100天挑战Day9

    #叶子姑娘自律100天挑战Day 9# 2019.1.22 Day9 #目标1# 跟着Keep坐了三组高抬腿,一组...

  • #2019.1.22日结Day9#

    叶子姑娘的自律100天挑战Day9 【挑战者】一之鱼 【自我提升】 1、听完时间管理课第六课并打卡,这一课是讲潜能...

  • 自律挑战day9

    *2019.1.20日结day9 【晨练】day20,阿斯汤加45min 【英语】day10,百词斩30min 【...

  • 实习挑战DAY9

    今天是小年吧!拖着还没睡醒的身躯迎接寒风出门上班,大红灯笼和亮了一整夜的树灯今早还在街道上坚守自己的岗位,顿时感觉...

网友评论

    本文标题:100天代码挑战:DAY9

    本文链接:https://www.haomeiwen.com/subject/nobnnftx.html