当前位置: 首页 > article >正文

【LeetCode】413. 等差数列划分

413. 等差数列划分(中等)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 思路

    • 由于题目求的是等差数列 ,很自然想到子数组一定满足 nums[i] - nums[i-1] == nums[i-1] -nums[i-2]; 。然而我们对于 dp 数组的定义通常是以 i 结尾,满足某些条件的子数组数量,而等差数组可以在任意一个位置终结,因此此题在最后需要对 dp 数组求和。
  2. 代码

    class Solution {
    public:
        int numberOfArithmeticSlices(vector<int>& nums) {
            int n = nums.size();
            if(n <= 2) return 0;
            vector<int> dp(n, 0);
            for(int i=2; i<n; ++i){
                if(nums[i] - nums[i-1] == nums[i-1] - nums[i-2]){
                    dp[i] = dp[i-1] + 1;
                }
            }
            return accumulate(dp.begin(), dp.end(), 0);
        }
    };
    
  3. 收获

    • 题解思路很清晰,我反而把这道题想复杂了,此外,我居然还对数组进行排序,导致一开始没办法通过,稀里糊涂。

http://www.kler.cn/a/17722.html

相关文章:

  • 国家网络安全法律法规
  • WordPress 6.7 “Rollins”发布
  • 机器学习总结
  • 数据集标注txt文件读取小工具
  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • 免费,WPS Office教育考试专用版
  • git合并分支(开发版本分支合并到发布版本分支)
  • JavaWeb:JavaScript 教程 笔记
  • 【系统集成项目管理工程师】计算题专题一
  • 3.13 结构体嵌套、大小及位域
  • Golang每日一练(leetDay0055) 最长子串、相交链表
  • Yuzuki Lizard V851S开发板 –编译 OPENCV 4.5.4
  • MySQL:常见运算符
  • FLstudio21支持中文语言及水果最新版本功能特点
  • C++之C++新特性
  • 借助PLC-Recorder,西门子PLC S7-200SMART实现2ms周期采集的方法(带时间戳采集)
  • C plus plus ——【继承与派生】
  • TouchGFX开发(2)----触摸屏幕组件点亮LED
  • 【Android入门到项目实战-- 8.5】—— 使用HTTP协议访问网络的实践用法
  • 命令设计模式
  • python基本数据类型---数字字符串
  • 有关教育的几段话
  • 基于zookeeper实现分布式锁
  • 【无人车】无人驾驶地面车辆避障研究(Matlab代码实现)
  • 特征向量中心度(Eigenvector Centrality)
  • Kali 安装中文输入法(超详细)