当前位置: 首页 > 知识库问答 >
问题:

创建返回递增序列的函数

朱典
2023-03-14

我试图使一个函数,对于一个整数序列作为一个数组,可以确定是否可以通过从数组中移除不超过一个元素来获得严格递增的序列。如果可以移除某个元素,则输出为True,否则返回false。我试过了,

def almostIncreasingSequence(sequence):

   if sequence[:-1] == sequence[1::]:
        return True
   else:
        return False

它适用于列表,

  sequence =  [1, 3, 2, 1]
  >>> False

因为你不能删除任何会导致递增序列的数字。但是,如果列表是

sequence: [1, 3, 2]
>>> True

这是真的,因为你可以删除2或3有一个递增的序列。但是,我的函数错误地输出False。

共有1个答案

丁宏浚
2023-03-14

我真的不明白你的第一个主意是什么...一个更简单的解决方案怎么样?

def fn(seq):
    last_i = None
    lives = 1
    for i in seq :
        if last_i is None :
            last_i = i
        else :
            if (i <= last_i):
                lives = lives - 1
                if (lives < 0) :
                    return False
            last_i = i
    return True

>>> fn([1, 3, 2, 1])
False
>>> fn([1, 3, 2])
True
>>> fn([1, 3, 2, 3])
True
>>> fn([1, 3, 2, 4, 6, 8])
True
>>> fn([1, 3, 2, 4, 6, 8, 2])
False
 类似资料:
  • 我有一个返回dict对象的函数,我想利用pandas/numpy在数据帧的每一行上为该函数执行列操作/向量化的能力。函数的输入在dataframe中指定,我希望函数的输出成为现有dataframe上的新列。下面是一个例子。 期望输出: 我读了这个答案,大部分内容都是这样的,但是当函数返回一个dict对象,其中包含所需的列名作为dict中的键时,我不太明白该怎么做。

  • 我想创建序列,如果可能的话,只使用和'seq'。所以每次重复我都希望重复序列增加1。这可以通过创建然后添加一个向量来实现。 但是有没有办法在不创建新向量并将其添加到第一个向量的情况下实现这一点?

  • 我有一个最长递增子序列的代码。现在它返回最长的递增子序列的长度,但我不知道如何使它返回这个精确的子序列。为了前任。在这种情况下,它应该返回[3,6,7,8,9]。有什么想法吗?我希望不要使用非常复杂的语法:d 外部循环在来自a的所有元素之后进行迭代,内部循环检查表中的元素k是否大于索引0到k-1的项,这是因为本例中的q表类似于我们可以看到,生成长度为1的子序列,生成长度为2的子序列(使用第一个元素

  • 问题内容: 我最近开始与React合作,但遇到了一些问题。 目前我有以下代码 这是我的职责。 但是,我只用很小的改动就将同一段代码复制/粘贴了5次以上。我希望将其提取为一个函数,但是我不确定该怎么做。 我应该在哪里放置函数?-在render()方法里面? 我应该从中得到什么?-一个字符串,其中包含html和{}占位符中的变量? 我可以简单地在html中调用它吗? 问题答案: 创建这样的功能: 像这

  • 我想创建一个配置单元UDF函数,它根据一些值返回特定的列名,比如retreivecol(年龄)。如果年龄是20,那么返回在选择查询中使用的列名列表,比如'name、email、fbuserid、friend list‘等。如果年龄小于20,只返回'name'。所以我希望我的配置单元QL查询看起来像 上面的查询只打印列的名称,如'name、email、fbuserid、friendslist'等,而

  • 问题内容: 我需要创建一个包含增量ID的表,但是我希望这些ID根据另一列自动进行细分。这是我想要的: 我想要显示类似以下内容: 意思是我希望每个类别自动递增,并为插入的任何新类别从1重新开始。我希望在表中的任何插入处自己完成此操作(我不想在插入此表时记得这样做)。 我认为这可以通过窗口函数或触发器来完成,但我不知道如何做到。 编辑: 我希望数据能够持久保存,以避免在发生数据删除时对增量ID进行移位