Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python LeetCode问题的递归实现_Python_Recursion_Dynamic Programming - Fatal编程技术网

Python LeetCode问题的递归实现

Python LeetCode问题的递归实现,python,recursion,dynamic-programming,Python,Recursion,Dynamic Programming,问题名称:413。算术切片 问题陈述: 如果一个数字序列至少由三个元素组成,并且任意两个连续元素之间的差值相同,则称之为算术序列 例如,这些是算术序列: 1,3,5,7,9 7,7,7,7 3、-1、-5、-9 以下序列不是算术序列 1,1,2,5,7 给出了一个由N个数组成的零索引数组。该数组的切片是任意一对整数(P,Q),因此0考虑以下数组: 1, 3, 5, 7 您可以编码计数1、3、5和3、5、7。但是,它无法计数1,3,5,7(这是长度为4的算术切片)。请考虑以下数组: 1, 3,

问题名称:413。算术切片

问题陈述
如果一个数字序列至少由三个元素组成,并且任意两个连续元素之间的差值相同,则称之为算术序列

例如,这些是算术序列:

1,3,5,7,9
7,7,7,7
3、-1、-5、-9

以下序列不是算术序列

1,1,2,5,7


给出了一个由N个数组成的零索引数组。该数组的切片是任意一对整数(P,Q),因此0

考虑以下数组:

1, 3, 5, 7

您可以编码计数
1、3、5
3、5、7
。但是,它无法计数
1,3,5,7
(这是长度为4的算术切片)。

请考虑以下数组:

1, 3, 5, 7

您可以编码计数
1、3、5
3、5、7
。但是,它无法计数
1,3,5,7
(这是长度为4的算术切片)。

以下是LeetCode接受的一个答案。我希望简单的逻辑有意义:

JavaScript代码:

函数f(A,i=2,total=0,prevSeqTotal=0){
如果(i>=A.length)
返回总数
//此处结束的序列数为1(长度为3)
//加上以上一个结尾的数字
//元素,因为这些元素都被扩展了。
如果(A[i]-A[i-1]==A[i-1]-A[i-2])
返回f(A,i+1,总计+1+prevSeqTotal,1+prevSeqTotal)
返回f(A,i+1,总计,0)
}

log(f([3,1,-1,-3])
这里有一个LeetCode接受的答案。我希望简单的逻辑有意义:

JavaScript代码:

函数f(A,i=2,total=0,prevSeqTotal=0){
如果(i>=A.length)
返回总数
//此处结束的序列数为1(长度为3)
//加上以上一个结尾的数字
//元素,因为这些元素都被扩展了。
如果(A[i]-A[i-1]==A[i-1]-A[i-2])
返回f(A,i+1,总计+1+prevSeqTotal,1+prevSeqTotal)
返回f(A,i+1,总计,0)
}

console.log(f([3,1,-1,-3]))
解决方案是错误的,因为它不计算长度超过3的任何算术切片。感谢GZ0的响应。我们如何处理这种情况?如果你自己无法解决,你可以在网站上找到各种解决方案。是的,我可以,但由于我实施了这个解决方案,我想在这个特定的算法中获得帮助,这样我就可以确保在我们研究未来的解决方案时,某些事情可以得到改进。实际上,您的解决方案不仅忽略了一些算术切片,而且还对一些切片进行了两次计数,因为
array[1://code>和
array[:-1]
有很大的重叠。如果没有一些根本性的改变,我看不到一个快速解决方案。这个解决方案是错误的,因为它不包括任何长度超过3的算术切片。感谢GZ0的回复。我们如何处理这种情况?如果你自己无法解决,你可以在网站上找到各种解决方案。是的,我可以,但由于我实施了这个解决方案,我想在这个特定的算法中获得帮助,这样我就可以确保在我们研究未来的解决方案时,某些事情可以得到改进。实际上,您的解决方案不仅忽略了一些算术切片,而且还对一些切片进行了两次计数,因为
array[1://code>和
array[:-1]
有很大的重叠。如果没有一些根本性的改变,我看不到一个快速解决方案。谢谢@NPE的回复。我们可以做些什么改变来处理这些案件?任何建议。感谢@NPE的回复。我们可以做些什么改变来处理这些案件?任何建议。