思路:等差数列的性质 A[i] - A[i - 1] == A[i - 1] - A[i - 2]
方法1:暴力,一旦当前区间不满足等差数列了,那就不需要继续判断了。

class Solution {public int numberOfArithmeticSlices(int[] A) {int n = A.length;if(n < 3)   return 0;int count = 0;for(int i = 0; i < n - 2; i++){int d = A[i + 1] - A[i];for(int j = i + 2; j < n; j++){if(A[j] - A[j - 1] == d){count++;}else{// 一旦当前区间不满足等差数列了,那就不需要继续判断了。break;}}}return count;}
}

方法2:
  动态规划 dp[i]表示以当前位置结尾时,共有多少个等差数列。
  dp[i] = dp[i - 1] + 1 含义为,
  以当前位置结尾时的等差数列个数 = 以前一个位置结尾时的等差数列个数 + 1,最后遍历dp相加即可。

class Solution {public int numberOfArithmeticSlices(int[] A) {if (A.length < 3) return 0;int n = A.length;int[] dp = new int[n];int sum = 0;for (int i = 2; i < n; i++){if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]){dp[i] = dp[i - 1] + 1;sum += dp[i];}}return sum;}
}

Leetcode 413. 等差数列划分相关推荐

  1. leetcode - 413. 等差数列划分

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

  2. 等差数列java_Java实现 LeetCode 413 等差数列划分

    413. 等差数列划分 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, - ...

  3. Java实现 LeetCode 413 等差数列划分

    413. 等差数列划分 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, - ...

  4. Leetcode 413.等差数列划分

    Time: 20190906 Type: Medium 题目描述 以下数列不是等差数列. 1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从0开始.数组 A 的一个子数组划分为数组 (P, ...

  5. Leetcode 413. 等差数列划分(python)

    如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 以下数列不是 ...

  6. LeetCode 413 等差数列划分

    题目描述 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 以 ...

  7. [leetcode] 413. 等差数列划分

    一开始想得是这题应该是用动态规划来做,但是没写出来 下面的都是leetcode上的代码: https://leetcode-cn.com/problems/arithmetic-slices/solu ...

  8. leetcode 413. 等差数列划分

    如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列. 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 以下数列不是 ...

  9. 2022-4-18 Leetcode 413. 等差数列划分

    class Solution {public:int numberOfArithmeticSlices(vector<int>& nums) {int n = nums.size( ...

  10. LeetCode 413. 等差数列划分(DP)

    1. 题目 一个数列的等差数列子数组有多少个. A = [1, 2, 3, 4]返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]. ...

最新文章

  1. SAP RETAIL Plant Group里的特性
  2. Python总结:Python基础(一)
  3. 【LeetCode从零单排】No.160 Intersection of Two Linked Lists
  4. Build failed in step 'Installing CLooG for host'
  5. Nginx 模块开发
  6. QT显示框架嵌入Vs控制台工程
  7. SAP UI5 formatter的原理和调试截图-当UI字段没有值显示时怎么办
  8. vue中的适配:px2rem
  9. 论中国传统辩证推理科学理论范式(ZZ)
  10. ubuntu修改固定ip
  11. 多线程笔试题(linux)
  12. Java语言词法分析器
  13. matlab连接github,GitHub - chenboshuo/learn_matlab: 我的matlab学习
  14. arduino 读取串口信息hex_进阶教程1:Arduino串口通信与电脑控制LED
  15. 计算机精品学习资料大放送
  16. 华人的旗帜——首位亚裔图灵奖获得者姚期智
  17. 火车头怎么采集php的,火车采集器采集入库教程
  18. No serializer found for class com.yumoxuan.domain.Store and no properties discovered to create BeanS
  19. 异常检测——线性模型
  20. 常见 SQL 面试题:经典 50 例

热门文章

  1. ubuntu18.4搭建samba文件共享服务
  2. Connection closed by foreign host.
  3. 模型评价指标:准确率、精确率、召回率、F1值,混淆矩阵
  4. 测试机械表误差的软件,机械表的误差越小就越好吗?其实你错了
  5. A. 阿里巴巴 数据中台 --- 建设之路
  6. STC89C516/C52单片机串口波特率9600初始化代码
  7. 哈佛大学开放课程:《公正:该如何做是好?》
  8. 2021年中国职工医疗互助发展分析:在政策的引导下,职工医疗互助将迎来高质量发展阶段[图]
  9. Unity3d笔记——利用Animator使模型动起来
  10. ECM技术学习:基于模板的帧内模式推导(Template based intra mode derivation )