查找未排序数组中三角形的数量2024 年 8 月 29 日 | 阅读 6 分钟 在本教程中,我们将编写 Python 程序来计算可能的三角形数量。我们给出了一个未排序的数组,需要确定可以从无序正整数数组中选择三个不同的值来形成多少个三角形。当任意两个值(或边)的和大于第三个值(或边)时,就可以形成一个三角形。 示例 - 让我们使用朴素方法来解决这个问题。 方法 - 1:朴素方法首先,我们将使用朴素方法解决这个问题。在此方法中,我们将遵循以下步骤:
让我们在 Python 代码中实现上述步骤。 示例 - 输出 Number of triangles: 3 这种朴素方法的时空复杂度为 O(n3),因为有三个嵌套循环,对于大型数组来说效率低下。然而,它为问题提供了一个直接的解决方案。 方法 - 2:使用排序要使用排序来解决这个问题,您可以遵循以下步骤:
让我们理解以下示例 - 示例 - 输出 Number of triangles (arr1): 3 Number of triangles (arr2): 6 用于计算排序数组中三角形数量的代码的时间复杂度为 O(n2),其中 'n' 是输入数组 `arr` 的长度。 方法 - 3:双指针法为了使用双指针法解决这个问题,我们可以遵循以下步骤:
下面是双指针法的 Python 代码。 示例 - 输出 Number of triangles: 3 此代码使用双指针法查找可形成的三角形数量,时间复杂度为 O(n2)。 结论在本教程中,我们探讨了三种方法来解决在未排序数组中计数三角形的问题,其中每个三角形是通过从数组中选择三个不同的值形成的。朴素方法涉及三个嵌套循环,时间复杂度为 O(n3),对于大型数组来说效率低下。基于排序的方法和双指针方法都提供了 O(n2) 的时间复杂度的有效解决方案。对数组进行排序使我们能够有效地将问题简化为查找有效的三角形组合。双指针方法通过消除不必要的检查进一步提高了性能。 |
Python 中的语音识别 您是否想过 Google Assistant 或 Amazon Alexa 是如何识别您所说的一切的?您可能会想到一些复杂的智能技术在背后运作。除了在识别系统技术巨大增长的市场中大获成功外,...
阅读 17 分钟
学习机器学习和人工智能的课题并不容易。在本教程中,我们将能够获得许多关于用 Python 编写的人工智能项目的想法。为什么人工智能需求量大?人工智能开始...
5 分钟阅读
银行账号是金融机构用于识别特定账户的唯一标识符。验证银行账号对于确保金融交易的准确性和效率至关重要。本文将讨论如何使用……验证银行账号。
阅读 3 分钟
在本教程中,我们将学习转置排序,也称为砖排序或奇偶排序。它是一种相对简单的排序算法,最初是为了在具有局部互连的并行处理器上使用而开发的。该算法类似于冒泡排序和...
阅读 3 分钟
Python2.x Python 2.x 是流行编程语言 Python 的一个版本。它于 2000 年首次发布,尽管更新版本 Python 3.x 于 2008 年发布,但至今仍被广泛使用。Python 2.x 的简单性和可用性是其两个主要特点。
阅读 3 分钟
字典是 Python 中最常用的数据类型之一。它是键:值对的无序集合。每个值都有一个对应的键来标识它。字典是可变集合,意味着我们可以修改值。使一个...
阅读 4 分钟
在本教程中,我们将用 Python 编写反转链表的程序。链表用于动态存储元素。链表是一种像数组一样的线性数据结构,但它动态存储元素。每个元素连接...
阅读 8 分钟
数据科学在每个电子商务业务中的著名用途之一是推荐系统。为了增加时尚领域的销售额和用户参与度,一家电子商务公司希望向其用户推荐最流行的时尚。Myntra 是著名的电子商务网站之一,以其......而闻名。
阅读 22 分钟
人工神经网络 (ANN) 是数据科学中最前沿的机器学习模型。它们的性能神秘地令人惊叹,即使只有一个隐藏层,它们也能以任何所需的精度近似任何函数。既然如此,为什么还会有人选择其他模型呢?
阅读9分钟
使用 PyQt 的 QThread 冻结 GUI。在 PyQt 图形用户界面 (GUI) 程序中,事件循环和 GUI 在执行的主线程上运行。如果您在此线程中启动一个长时间运行的进程,您的 GUI 将变得无响应,因为它将仅在完成...
阅读 28 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India