本文主要是介绍力扣 -- 1027. 最长等差数列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题步骤:
参考代码:
class Solution {
public:int longestArithSeqLength(vector<int>& nums) {int n=nums.size();int ret=2;unordered_map<int,int> hash;//这里可以先把nums[0]存进哈希表中,方便后面i从1开始遍历hash[nums[0]]=0;vector<vector<int>> dp(n,vector<int>(n,2));for(int i=1;i<n;i++){for(int j=i+1;j<n;j++){int b=nums[i];int c=nums[j];int a=2*b-c;if(hash.count(a)){dp[i][j]=dp[hash[a]][i]+1;}ret=max(ret,dp[i][j]);}//第i行填完之后记得把这个nums[i]和i绑定放进哈希表中hash[nums[i]]=i;}return ret;}
};
你学会了吗???
这篇关于力扣 -- 1027. 最长等差数列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!