446. Arithmetic Slices II
来源:互联网 发布:淘宝把买家加入黑名单 编辑:程序博客网 时间:2024/05/19 15:25
446. Arithmetic Slices II - Subsequence
Arithmetic序列
题目:
给定一个数组,判断该数组中有多少Arithmetic子序列。
Arithmetic子序列定义为:长度大于2的,并且每相邻两个元素之间拥有相同的差值。
解题思路:
动态规划。
定义一个一维数组dp,dp中的元素为哈希表,这个哈希表是等差数列的差值和其长度之间的映射。
遍历数组中的所有数字nums[i](0<=i<n),对于当前遍历到的数字,从头开始遍历到当前数字nums[j](0<=j<i),计算两个数字之间的差值diff。如果diff越界,则不做任何处理;若diff没有越界,则将dp[i]中的diff的差值映射+1;然后看dp[j]中是否有diff的映射,若有,则构成等差数列,将dp[j][d]加入结果集中,更新dp[i][d]。
代码:
class Solution{ public int numberOfArithmeticSlices(int[] A) { if(A==null || A.length<=2) return 0; int result=0; HashMap<Integer,Integer>[] maps=new HashMap[A.length]; for(int i=0;i<A.length;i++) { maps[i]=new HashMap<Integer,Integer>(); for(int j=0;j<i;j++) { long diff=(long)A[i]-(long)A[j]; //判断是否越界 if(diff>Integer.MAX_VALUE || diff<Integer.MIN_VALUE) continue; int d=(int) diff; // getOrDefault():从map对象里获取数据,如果没有数据则返回一个默认的值 int count=maps[j].getOrDefault(d, 0); maps[i].put(d, maps[i].getOrDefault(d, 0)+count+1); result+=count; } } return result; }}
阅读全文
0 0
- 446. Arithmetic Slices II
- 446. Arithmetic Slices II
- 446. Arithmetic Slices II
- 446. Arithmetic Slices II
- 446. Arithmetic Slices II
- 446. Arithmetic Slices II - Subsequence
- 446. Arithmetic Slices II - Subsequence
- 446. Arithmetic Slices II - Subsequence***
- 446. Arithmetic Slices II - Subsequence
- [LeetCode]446. Arithmetic Slices II
- LeetCode 446. Arithmetic Slices II
- [Leetcode] 446. Arithmetic Slices II
- leetcode 446. Arithmetic Slices II
- LeetCode 446. Arithmetic Slices II - Subsequence
- LeetCode 446. Arithmetic Slices II - Subsequence
- Leetcode-446. Arithmetic Slices II - Subsequence
- Arithmetic Slices II - Subsequence
- Arithmetic Slices II
- Mysql 充电站SQL查询1--171221--mysql-sql
- 破解简单的Android签名检查
- 堆排序
- es6快速入门(4)--数组的扩展
- Python--小甲鱼学习笔记--第26课:字典(dict())
- 446. Arithmetic Slices II
- 查看端口是否启用
- 数论基础:矩阵快速幂解斐波那契数列Yet another Number Sequence(UVA)
- HiveServer2 获取日志
- pat甲级1064-Complete Binary Search Tree
- UI 一一 UIWebView的应用小案例
- 第一章:STM32串口ISP下载
- Visual studio + IIS环境下跨域项目,移动端可触发断点调试的WEB服务器布署
- 第六章 ALDS1_5_A:Exhaustive Search 穷举搜索