413. Arithmetic Slices
来源:互联网 发布:淘宝网易云音乐会员1元 编辑:程序博客网 时间:2024/06/06 03:53
起初发现这道题很像子串问题,我们只需要求出每个连续的Slices的长度,然后计算每个连续Slices的子串个数即可。假设某个连续的串长度为N,那么它所包含的子串个数为
(N-1)*(N-2)/2,很简单的数学问题
class Solution {public:int numberOfArithmeticSlices(vector<int>& A) {if (A.size() < 3)return 0;else{int j = 0;int num[100] = {};int dif = A[1] - A[0];int l = 2;for (int i = 2; i < A.size(); ++i){if ((A[i] - A[i - 1]) == dif)l++;else{if (l>2)num[j++] = l;dif = A[i] - A[i - 1];l = 2;}}if (l>2)num[j++] = l;if (j == 0)return 0;else{int sum = 0;for (int i = 0; i < j; ++i)sum += (num[i] - 1)*(num[i] - 2) / 2;return sum;}}}};
class Solution {public:int numberOfArithmeticSlices(vector<int>& A) {if (A.size() < 3)return 0;else{int sum = 0;vector<int>dp(A.size(), 0);int dif = A[1] - A[0];for (int i = 2; i < A.size();++i)if (A[i] - A[i - 1] == dif){dp[i] = dp[i - 1] + 1;sum += dp[i];}elsedif = A[i] - A[i - 1];return sum;}}};
0 0
- 413. Arithmetic Slices
- [LeetCode]413.Arithmetic Slices
- Leetcode 413. Arithmetic Slices
- Leetcode-413. Arithmetic Slices
- 413. Arithmetic Slices
- 413. Arithmetic Slices
- 【LeetCode】413. Arithmetic Slices
- 413. Arithmetic Slices
- Leetcode-413. Arithmetic Slices
- 413. Arithmetic Slices
- 413. Arithmetic Slices
- 413. Arithmetic Slices
- 413. Arithmetic Slices
- LeetCode 413. Arithmetic Slices
- 413. Arithmetic Slices 【M】
- 413. Arithmetic Slices
- Leetcode 413. Arithmetic Slices
- 413. Arithmetic Slices
- 前端学算法(三):栈
- Anndroid GC 那些事
- Fresco 使用教程(包括显示在线图片,资源图片、下载、清除缓存)
- thread/threading/Queue/mutex——Python 多线程
- 计算机的组成 —— 主板
- 413. Arithmetic Slices
- ⑩Mysql Cookie注入
- [Android进阶笔记]Android触摸事件的拦截机制
- Shell脚本中的并发(1)
- hdu1257最少拦截系统---贪心水题
- 在Linux下安装Anaconda和PyCharm
- laravel基础知识总结
- 信息论与编码——密码史的发展
- 比较两个分数的大小