增量/减量模式的Java检查

增量/减量模式的Java检查,java,deque,Java,Deque,我的问题是,我想通过列表检查Java中的增量模式 基本上,我的意思是,假设我有一个10个样本值的浮点数列表(或双倍,或其他),具有以下值: 3.2675781、3.2800293、3.232666、3.1662598、3.0898438、3.0302734、3.0253906、2.9074707、2.9343262、2.9179688 注意它是如何从小>大>小>小>小,等等 如果可能的话,我如何检测这种模式?最有效的方法是什么 谢谢 您只需要一个通用方法就可以做到这一点 我们的想法是使用一个自定

我的问题是,我想通过列表检查Java中的增量模式

基本上,我的意思是,假设我有一个10个样本值的浮点数列表(或双倍,或其他),具有以下值:

3.2675781、3.2800293、3.232666、3.1662598、3.0898438、3.0302734、3.0253906、2.9074707、2.9343262、2.9179688

注意它是如何从小>大>小>小>小,等等

如果可能的话,我如何检测这种模式?最有效的方法是什么


谢谢

您只需要一个通用方法就可以做到这一点

我们的想法是使用一个自定义的
比较器
,它允许您比较类型,或者您的类型应该是可比较的(应该实现
可比较的

下面的代码显示了这一点:

公共布尔检查模式(列表){
返回checkPattern(list,T::compareTo);
}
公共布尔检查模式(列表、比较器、比较器){
//假设具有1个元素的null/empty/list满足该模式
如果(list==null | | list.size()==0 | | list.size()==1)
返回true;
if(comparator.compare(list.get(0),list.get(1))>=0)
返回false;
对于(int i=1;i如果(comparator.compare(current,next)有两个循环,这可能相关吗?(最后一个循环又变大了。)我认为没有比
O(n)
更有效的解决方案了(
n
==列表大小):遍历数组/列表/结构(一次),并返回/存储输出…在如此短的列表中几乎不可能检测到有意的模式。您所能做的最好的方法是取连续元素之间的差异并寻找一个共同的分母。(也许您需要更好地解释“模式”的含义。)
for(int i=0;i