【发布时间】:2016-08-02 14:08:35
【问题描述】:
我希望能够找到单调递减子序列末尾的索引,该子序列从列表的第一个索引开始,并且仅按连续顺序下降。例如,我可能有一个如下所示的列表:
x = [89, 88, 88, 88, 88, 87, 88] 我希望能够返回5 因为它是子序列[89, 88, 88, 88, 88, 87] 的最后一个元素的索引,其中该子序列中的每个数字都是单调递减并连续下降,开始89,列表的第一个索引。
例如,我有一个如下所示的列表:x = [89, 87, 87, 86, 87]。我想返回0,因为它是唯一以第一个索引 (89) 开头的数字,并且连续单调递减(即列表中的下一个数字从第一个数字下降 2)。或者,如果我有一个看起来像这样的列表:x = [89, 90, 89, 88],我想返回0,因为它是序列中唯一从列表的第一个索引单调递减的部分。
抱歉,难以解释。提前感谢您的帮助!
【问题讨论】:
-
到目前为止你尝试过什么?这不是一个供人们为您编写代码的网站-
-
试一试,如果您遇到问题,请发布您的尝试和遇到的问题。乍一看,您似乎想从索引 i 中减去索引 i+1 并找到结果为负的位置 - 这应该足以解决问题。
-
对于连续函数,导数用于分析它如何在域中变化。导数的离散类似物是finite difference。您似乎想根据数据系列的计算有限差分返回值。
-
@sos 如果您有一个您认为效率低下的有效解决方案,那么您应该在 codereview.stackexchange.com 上询问(一个主题问题)。这里不是询问一般实施想法的地方。
-
请注意,当前形式的这个问题与代码审查无关。我们正在改进现有的工作代码。
标签: python subsequence