当前位置: 首页 > 面试题库 >

数组的子序列不为零

潘高岑
2023-03-14
问题内容

我正在尝试编写代码以获取此形式的列表的子序列:

l = [240,200,160,4,0,0,0,0,4,4,4,0,0,0,1,1,1,1]

基本上,我需要获取不为零的子序列,因此需要以下形式的输出:

output = [[255,200,160,4] , [4,4,4] , [1,1,1,1]]

谢谢。


问题答案:

连续的子序列?寻呼Groupby博士,博士itertools.groupby

>>> from itertools import groupby
>>> l = [240,200,160,4,0,0,0,0,4,4,4,0,0,0,1,1,1,1]
>>> [list(g) for k,g in groupby(l, lambda x: x != 0) if k]
[[240, 200, 160, 4], [4, 4, 4], [1, 1, 1, 1]]

甚至我们利用事实bool(0)Falsebool(any other integer)True

>>> [list(g) for k,g in groupby(l, bool) if k]
[[240, 200, 160, 4], [4, 4, 4], [1, 1, 1, 1]]


 类似资料:
  • 问题内容: 我需要提取给定窗口的时间序列/数组的所有子序列。例如: 迭代序列的简单方法当然很昂贵,例如: 我发现了一种更好的方法,即复制序列,将其移动一个不同的值直到覆盖窗口,然后使用分割不同的序列。性能大约提高了100倍,因为for循环遍历窗口大小而不是序列大小: 我已经看到pandas在pandas.stats.moment模块中包含多个滚动功能,我想它们的作用在某种程度上类似于子序列问题。该

  • 、和是子序列中的三个连续元素。 例如,如果输入数组为,则最长凸子序列应为:或。 在“最长递增子序列”(LIS)问题中,我尝试用同样的动态规划思想来解决这个问题。但是由于子序列中的每个元素都依赖于前面的两个元素,所以O(n^2)解似乎是不可能的。谢谢你的帮助。

  • 给定两个数组A和B,从A中选择一个子序列X,从B中选择Y,求和(X)应等于求和(Y)。我们必须找到选择这类子序列的方法。 数组中的元素数最多可以是100个值-100到100 我的方法是:生成两个数组的所有子序列,取它们的和,对于每个可能的和,将我们在数组A中找到的子序列的否与我们在数组B中找到的具有该和的子序列的否相乘。 这是非常低效的,因为生成的所有子序列都是O(2^100) 有人能帮我吗?我不

  • 假设我们有一些不相交的递减序列: 我选择一些递减序列(例如按顺序,,,,的5个递减序列)并将它们级联(结果序列。 现在我想求S中最长递增子序列的长度,在上面的示例中:-> 预期时间复杂度小于O(S)。

  • 我有以下JSON文件要反序列化

  • 在给定的数组中,我试图找到子序列的总数,以便: 连续各学期差额不大于3 子序列的第一个元素是数组的第一个元素 子序列的最后一个元素是数组的最后一个元素 例如,在数组:中,它有5个遵循上述条件的子序列。 我正在尝试一种自下而上的方法。我尝试了以下方法,但它没有给出所有子序列和输出4,而不是5。 我该怎么做?我的直觉是,这种方法可能类似于最长的递增子序列,但不确定如何实现。

  • 该问题给出了两个输入:数组(arr)和由数组构成子数组的次数(n)。子数组的和应该是奇数 已经很清楚,如果所有的数字都是偶数。奇数和子数组是不可能的。对于奇数和,连续的2个数字应该是奇数+偶数或者偶数+奇数。但我似乎不能把它们分成N个子数组。请帮忙解释一下逻辑。

  • 问题内容: 给定一个大小为numpy的数组和一个整数,我想生成该数组的所有顺序长度子序列,最好是二维数组。 例: 我能想到的最好方法是 我是否缺少更好的(最好是内置的)功能? 问题答案: 这是一种非常快速且内存有效的方法,仅是对原始数组的“查看”: 如果需要写入此数组,则应先做一个步骤,否则,您将修改原始数组和“子序列”数组中的相应条目。 此处更多信息:https : //stackoverflo