【leetcode】【Medium】【413. Arithmetic Slices】【Math】【Dynamic programming】

problem link


code(java 2ms  beat 32.44%):

public class Solution {
    public int numberOfArithmeticSlices(int[] A) {
		int count = 0;
		int N = A.length;
		
		if(N<=2){
		    return 0;
		}

		for (int i = 0; i <= (N - 3); i++) {
			int numPQ = 0;
			int arithmetic = 0;
			int P = i;
			int Q = i + 2;

			if ((A[P + 1] - A[P]) == (A[Q] - A[P + 1])) {
				numPQ = 3;
				arithmetic = A[P + 1] - A[P];
				Q++;
			} else {
				continue;
			}

			while (Q < N && (A[Q] - A[Q - 1]) == arithmetic) {
				Q++;
				numPQ++;
			}
			count = count + (numPQ - 2);
		}

		return count;
	
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值