【发布时间】:2021-01-13 14:02:27
【问题描述】:
任务是从列表中删除所有增加的子系列。例如:
deleteInc([2,4,6,5,8,12,8,3],L) 应该产生 L=[8,3] 作为结果
我试图解决它,但它无法正常工作,我无法找出正确的解决方案。有人可以帮我一个正确的解决方案吗?在此先感谢:)
我的代码:
deleteInc([],[]).
deleteInc([H1,H2|T],L):-
H2>=H1,
!,
deleteInc(T,L).
deleteInc([H1,H2|T],[H2|T2]):-
H2<H1,
deleteInc(T,T2).
【问题讨论】:
-
你能解释一下吗,子系列是什么意思?你期待什么样的输出?
-
对于给定的输入,第一个增加的子序列是 2,4,6,然后是 5,8,12,这也是一个增加的子序列,然后是 8,3 数字不增加所以结果是 8,3。
-
一次检查 3 个值吗? [2,4,6],然后 [5,8,12] ...