1. public class Solution {
  2. public int NumberOfArithmeticSlices(int[] A) {
  3. int curr = , sum = ;
  4. for (int i = ; i < A.Length; i++)
  5. if (A[i] - A[i - ] == A[i - ] - A[i - ])
  6. {
  7. curr += ;
  8. sum += curr;
  9. }
  10. else
  11. {
  12. curr = ;
  13. }
  14. return sum;
  15. }
  16. }

https://leetcode.com/problems/arithmetic-slices/#/description

补充一个java的实现:

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

解释:

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

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

leetcode413的更多相关文章

  1. [Swift]LeetCode413. 等差数列划分 | Arithmetic Slices

    A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...

随机推荐

  1. git学习笔记——查看git历史记录

    1.查看Git日志: 命令:git log 默认不加参数,git日志会按照最新的日期从上往下显示 参数:-p 显示版本间的代码差异 -数字 显示部分的提交 -哈希值 显示指定的版本 2.指定查找范围: ...

  2. does not contain bitcode ShardSDK等三方库

    今天升级了XCode到7.0   重新编译项目出现了下面这些错误提示, ShardSDK/ShareSDK.framework/ShareSDK' does not contain bitcode. ...

  3. Loj 2534 异或序列

    Loj 2534 异或序列 考虑莫队离线处理.每加一个数,直接询问 \(a[x]\oplus k\) 的前/后缀数目即可,减同理. 利用异或的优秀性质,可以维护异或前缀和,容易做到每次 \(O(1)\ ...

  4. Scrapy源码研究前戏

    一.Twisted的使用 在 Twisted 中,有一种特殊的对象用于实现事件循环.这个对象叫做 reactor.可以把反应器(reactor)想象为 Twisted 程序的中枢神经.除了分发事件循环 ...

  5. spring cloud feign 接口继承以及参数传递的问题

    1. 优势     可以使用maven 进行访问,实现代码的共享,减少跨服务调用服务编写的问题   2. 使用      定义接口 publicinterfaceIUserService{ @Requ ...

  6. Docker生态不会重蹈Hadoop的覆辙

    本文原作者是晏东(精灵云Ghostcould创始人),在读到<Docker生态会重蹈Hadoop的覆辙吗?>文章后的个人思考,里面的不少观点也是很不错的. 1.形态上的差异 2013年的时 ...

  7. oralce之 10046对Hash Join分析

    前两天解决了一个优化SQL的case,SQL语句如下,big_table为150G大小,small_table很小,9000多条记录,不到1M大小,hash_area_size, sort_area_ ...

  8. 自定义显示提示一段时间自动消失ShowMsgText控件

    public partial class ShowMsgText : Label { public string TextMsg { get { return Text; } set { timer1 ...

  9. VMware下安装的Mac OS X如何修改显示分辨率 (转)

    我在Win7下利用VMware安装了苹果的OS x 10.8系统,安装成功启动后,发现分辨率为1024*768,而宿机的分辨率是1440*900,我想让虚拟机全屏显示,也就是想在雪豹下屏幕的分辨率也能 ...

  10. C++11标准库中cstdio头文件新增的5个格式化I/O函数学习

    刚开始学网络编程,稍微扩展书上的简单C/S程序时,发现以前太忽略标准I/O这一块,查官网发现C++11新增了几个格式化I/O函数. snprintf    将格式化输出写入到有大小限制的缓存中 vfs ...