当前位置: 首页 > 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/news/17722.html

相关文章:

  • 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 安装中文输入法(超详细)
  • 中级软件设计师备考---软件工程1
  • git上传大大大文件项目好折磨人
  • k8s之审计日志
  • 微机作业题
  • 字节跳动测试岗面试挂在2面,复盘后,我总结了失败原因,决定再战一次...
  • (别再手动点APP了)UiAutomator2自动化测试框架带你玩转APP操作
  • 模拟银行账户转账业务
  • 【软件测试】测试分类
  • 《花雕学AI》28:革命性的 ChatGPT for SEO——让您的排名飙升 50%!
  • 人脸识别--传统+深度方法