413 同样是一个动态规划题

第一次忘记jump

第二次忘记了i++ 

..然后ac了

//413. Arithmetic Slices

//point at least three elements
// 1 2 ->  3..n-2 -> n-1..n
//数组:来做的话  1...n-2
// 如果l>3的话  结果就是 n=6->sum n-2+.....1
//然后跳到n+l重新开始
#include<iostream>
#include<vector>
using namespace std;


class Solution {
public:
int ax(int n){
return (n-2)*(n-2+1)/2;

}
    int numberOfArithmeticSlices(vector<int>& A) {
    int sum=0;
    int n=A.size();
    int j;
       for(int i=0;i<n-2;i++){
        for( j=i+2;j<n;j++){
        if(A[j]-A[j-1]!=A[j-1]-A[j-2])
        break;
        }
        sum+=ax(j-i);
        //jump to j-1
        i=j-2;//少算了i++


       }
    return sum;
    }
};


int main(){
Solution a;
vector<int> b;
b.push_back(1);
b.push_back(1);
b.push_back(1);
b.push_back(1);
b.push_back(2);
b.push_back(3);
b.push_back(4);
cout<<a.numberOfArithmeticSlices(b);
}










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值