[Leetcode] 413. Arithmetic Slices
2017-01-12 15:11
281 查看
题目:leetcode链接
题意:求一串数字中有3个及以上连续数字组成的等差数列的个数。
例子:
[1,2,3,4] 组成的有3个分别是[1,2,3],[2,3,4],[1,2,3,4];
解题思路:
求出该数组中能有超过连续3个数组成等差数列的个数,然后再把每个等差数列进行拆分,求最终的个数。
具体代码实现:
题意:求一串数字中有3个及以上连续数字组成的等差数列的个数。
例子:
[1,2,3,4] 组成的有3个分别是[1,2,3],[2,3,4],[1,2,3,4];
解题思路:
求出该数组中能有超过连续3个数组成等差数列的个数,然后再把每个等差数列进行拆分,求最终的个数。
具体代码实现:
public class Solution { public int numberOfArithmeticSlices(int[] A) { int result = 0; int len = A.length; if (len < 3) { return 0; } List<Integer> list = new ArrayList<Integer>(); int interval = A[1] - A[0]; int flag = 2; for (int i = 2; i < len; i++) { int temp = A[i] - A[i - 1]; if (temp == interval) { flag++; if(i == len - 1){ list.add(flag); } } else { if (flag > 2) { list.add(flag); } flag = 2; interval = temp; } } int list_len = list.size(); for (int i = 0; i < list_len; i++) { int t = (list.get(i) - 2) * (list.get(i) - 2 + 1)/2; result += t; } return result; } }
相关文章推荐
- leetcode 413. Arithmetic Slices
- leetcode:413. Arithmetic Slices
- 【LeetCode】413. Arithmetic Slices
- [leetcode 413. Arithmetic Slices]medium|week 12
- LeetCode - 413. Arithmetic Slices - 含中文题意解释 - O(n) - ( C++ ) - 解题报告
- Leetcode-413. Arithmetic Slices
- [LeetCode]413. Arithmetic Slices
- LeetCode 413. Arithmetic Slices
- leetcode 413. Arithmetic Slices
- 【LeetCode】413. Arithmetic Slices
- Leetcode 413. Arithmetic Slices
- LeetCode 413. Arithmetic Slices
- LeetCode 413. Arithmetic Slices
- Leetcode 413. Arithmetic Slices 所有等差序列 解题报告
- LeetCode 413. Arithmetic Slices
- LeetCode 413. Arithmetic Slices
- LeetCode413. Arithmetic Slices题解
- 【LeetCode】413. Arithmetic Slices
- leetcode_413. Arithmetic Slices 数组中连续的等差数列个数
- leetcode 413. Arithmetic Slices