leetcode 413 Arithmetic Slices

来源:互联网 发布:mac ruby rvm 编辑:程序博客网 时间:2024/06/05 07:18

leetcode 413 Arithmetic Slices

给定一列整数,求含有的算数片个数。

算数片定义:至少包含3个整数,每个相邻整数的差值相等。eg: 1,2,3

算法

同样的,使用动态规划求解。找到状态n和状态n-1的关系。在这里就是找到n个整数包含的算数片的个数和前n-1个整数包含的算术片的关系。

  • 很明显,dp(n) = dp(n-1) +1

    dp代表前n个整数包含的算数片的个数。

Code

class Solution {public:    int numberOfArithmeticSlices(vector<int>& A) {        //保存以每个点结束的算数片的个数        vector<int> las(A.size(), 0);        int totals = 0;        for (int i = 2; i < A.size(); i++){            if(A[i]-A[i-1]==A[i-1]-A[i-2]){                //以该点结束的算数片的个数等于以前一个点结束的算数片的个数加一                las[i] = las[i - 1] + 1;                totals += las[i];            }        }        return totals;    }};
  • 可以不使用数组来保存每一个状态的算数片的个数,可以使用一个变量来保存上一状态的算数片的个数,从而节省空间,具体代码略。
  • 算法时间复杂度:O(n)
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 娄字怎么读 娄底 娄底新化 娄底涟源 娄底双峰 湖南娄底 娄底市 娄底房价 娄底旅游 娄底二手房 娄底邮编 长沙娄底 娄底景点 娄底房产 娄底站 娄底人才网 娄底南站 娄底到长沙 长沙到娄底 娄底公积金 娄底宁邦 娄底特产 娄底网 娄底新新网 娄底招聘网 娄底在哪里 娄底大学 娄底信息港 娄底红网 娄底在哪 娄底吧 娄底招聘 娄底职业技术学院 娄底旅游景点 娄底市公共资源交易中心 娄底公共资源交易网 娄底邮政编码 娄底市中心医院 湖南娄底很穷吗 娄底到长沙高铁 娄底公共资源交易中心