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

我的almostreadingSequence(序列)代码怎么不正确?[代号]

羊渝
2023-03-14

我看过一些关于这个问题的帖子,我想我的逻辑和他们的答案差不多。但我找不到我到底错在哪里。

  • 我的代码首先检查提供的序列的长度,如果长度小于或等于2,则自动返回true.
  • 接下来,它删除(pops)第一个元素,并检查其余元素是否按升序排列。
  • 如果序列不符合顺序,它将用原始序列替换它,并重复第二步,但这次将删除下一个元素(pop(i))。
  • 这将继续进行,直到不再有要移除的元素,最终返回false
  • 如果在任何迭代中发现列表是升序的,则函数返回true.

这是代码:

def almostIncreasingSequence(sequence):
    original = sequence.copy()
    if len(sequence) <= 2: return True
    for i in range(len(sequence)):
        sequence.pop(i)
        # print(sequence)
        for j in range(len(sequence)-1):
            if sequence[j+1] <= sequence[j]:
                sequence = original.copy()
            elif j+1 == len(sequence)-1:
                return True
        if i == len(sequence)-1:
            return False
    

这就是我的结果:(

我认为我的逻辑可能没有正确地在代码中实现。但我不知道怎么测试。如果你能给我一个序列,这个函数会给出一个错误的答案,那会很有帮助。

解决almostreadingSequence(Codefights)

这是我一开始提到的帖子之一。它还解释了almostincreasingsequence(sequence)问题,答案解释了代码背后的逻辑。

共有1个答案

司空鸿禧
2023-03-14

你不必尝试每一个元素。只要找到对提升的侵犯,并试图通过移除其中一个违反者来解决它。然后检查列表的其余部分。

更正式地说,假设序列[:i]按升序排列,而序列[i] 则按升序排列。你不能把它们都留着;一定有一个走了。哪一个,取决于 序列[i-1]

如果序列[i+1] ,则删除 序列[i]将没有帮助:冲突仍将存在。因此,删除 序列[i+1]。否则,删除 sequence[i](您知道原因了吗?)。最后,检查序列的其余部分是否是升序。

 类似资料:
  • 问题内容: 这是我的整个源代码: 代码卡在了 fmt.Println(“ enq =”,t)上, 但是我不知道为什么,这太奇怪了。 问题答案: deQueue在失败情况下无限循环,这阻塞了CPU。Goroutine在执行CPU工作时不会屈服。GOMAXPROCS必须大于等于2才能获得CPU并行性。 只是为了踢,这是使用高阶通道的线程安全,无阻塞队列实现:https : //gist.github.

  • 是我最喜欢的编辑器,我有一个代码格式化问题。这是我的代码: 当我使用选项shiftF格式化它时,它给出了以下信息: 显然,这是不正确的。 version-,并且不安装任何代码格式扩展。 所以,我不想安装任何代码格式化扩展,是否有任何配置可以正确执行此操作? --更新-- 抱歉。我检查了我的扩展安装,找到了扩展。但是为什么我使用vscode代码格式,它使用?

  • 以下是我的原始html代码: 而我只是想把三个div.box移动到div.container,但是当我直接粘贴的时候,就会是这样的,只是拳头线有正确的缩进: 我按照指示在设置中禁用aotoInent,但没有工作,那么如何处理它?

  • 问题内容: 我已经使用Selenium用Java编写了代码。当我运行代码时,它将引发NullPointerException。检查以下异常 我的代码如下: 问题答案: 您会看到一个原因,因为您从一开始就尝试访问该方法,这需要in的活动实例,即to &and perform 方法。 解决方案是先访问该方法,以便您拥有and 的活动实例。接下来,您可以访问方法。 这是您的工作代码块:

  • 我使用Selenium编写了Java代码。当我运行代码时,它会抛出NullPointerException。检查下面的异常 我的代码如下:

  • 我正在尝试限制关键字输入。 每当用户输入一个关键字,它就会在该关键字后面加上'span',例如。 如下面的html代码。 我可以限制字,但计数不准确,但当它达到5,它停止输入。 如果我刷新页面,我可以再输入一个,然后再阻止我一次。 奇怪的是,如果我为使用id就不起作用了。我得利用课堂。 我试过把,但不起作用,我必须保留它的资本。 jQuery: HTML: