博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode413
阅读量:6441 次
发布时间:2019-06-23

本文共 1082 字,大约阅读时间需要 3 分钟。

public class Solution {    public int NumberOfArithmeticSlices(int[] A) {        int curr = 0, sum = 0;            for (int i = 2; i < A.Length; i++)                if (A[i] - A[i - 1] == A[i - 1] - A[i - 2])                {                    curr += 1;                    sum += curr;                }                else                {                    curr = 0;                }            return sum;    }}

 

补充一个java的实现:

1 class Solution { 2     public int numberOfArithmeticSlices(int[] A) { 3         if (A == null || A.length == 0) { 4             return 0; 5         } 6         int n = A.length; 7         int[] dp = new int[n]; 8         for (int i = 2; i < n; i++) { 9             if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) {10                 dp[i] = dp[i - 1] + 1;11             }12         }13         int total = 0;14         for (int cnt : dp) {15             total += cnt;16         }17         return total;18     }19 }

解释:

dp[i] 表示以 A[i] 为结尾的等差递增子区间的个数。

因为递增子区间不一定以最后一个元素为结尾,可以是任意一个元素结尾,因此需要返回 dp 数组累加的结果。

转载于:https://www.cnblogs.com/asenyang/p/6786665.html

你可能感兴趣的文章
Delphi中将XML文件数据装入DataSet
查看>>
你刚才在淘宝上买了一件东西
查看>>
发布一个 Linux 下的 C++ 多线程库
查看>>
Python序列类型
查看>>
再谈ThinkPHP
查看>>
Hibernate问题浅析
查看>>
出现访问apache资源直接下载php文件的解决办法-----yum 安装 php mysql
查看>>
七种Mysql表类型
查看>>
归并与归并排序
查看>>
linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...
查看>>
spark 应用程序性能优化经验
查看>>
基于Zabbix IPMI监控服务器硬件状况
查看>>
Go语言之并发资源竞争
查看>>
mac本显示隐藏文件或关闭显示隐藏文件
查看>>
spring4.0 整合 Quartz 实现任务调度(一)
查看>>
android复杂布局的一点思路
查看>>
Awesome Python
查看>>
java web简单权限管理设计
查看>>
Google Analytics
查看>>
【转】什么是云计算
查看>>