在 Python 中查找和零和的三元组2024 年 8 月 29 日 | 5 分钟阅读 在本教程中,我们将编写 Python 程序来查找给定列表中所有和为零的三元组。我们将使用各种方法来解决这个问题。首先,让我们理解问题陈述。 问题陈述 -给定一个包含不重复元素的列表,我们需要找到列表中和为零的三元组。 示例 - 让我们来理解解决此问题的第一种方法—— 方法 1:暴力算法这种简单的方法需要 O(n3) 的时间来解决这个问题。在此方法中,我们将遵循以下方法—— 我们将运行三个 for 循环,逐个检查三个元素的和是否为零。如果三个元素的和为零,则打印元素;否则,打印未找到。 让我们来理解以下代码。 示例 - 输出 [[-20, 0, 20], [-20, 40, -20], [0, 20, -20], [0, 40, -40]] 解释 - 在上面的代码中,我们运行了三个 for 循环 i、j 和 k。第一个循环从零到 n-2,第二个 for 循环从 i+1 到 n-1,第三个循环从 j+1 到 n。循环计数器指定了三元组的三个元素。然后,我们检查 i、j、k 位置元素的和是否等于零。如果条件为真,则打印和,否则继续。 复杂度分析
方法 2:使用哈希在此方法中,我们将使用哈希来获得所需的结果。此方法比前一种方法更有效,因为它能在 O(N2) 的较短时间内给出结果。我们将遵循以下方法—— 它涉及遍历数组。对于每个元素 list1[i],找到一个和为“-list1[i]”的对。这个问题可以归结为对和问题,并可以用哈希在 O(n) 时间内解决。 让我们来理解以下代码—— 示例 - 输出 [[0, -20, 20], [40, -20, -20], [20, 0, -20], [40, 0, -40]] 解释 - 在上面的代码中,我们创建了一个 **hashmap** 来存储键值对。然后,我们运行两个嵌套循环;外层循环从 0 到 n-2,内层循环从 i+1 到 n-1。然后,我们检查 i 和 j 元素的和乘以 -1 是否存在于 hashmap 中。 如果元素存在于 hashmap 中,则打印三元组;将 hashmap 的 j 个组件插入。 复杂度分析
方法 3:使用排序在此方法中,我们将使用排序在 O(n2) 时间内获得合适的结果。让我们来理解以下代码。 示例 - 输出 [[-6, 1, 5], [-6, 2, 4]] 解释 - 在上面的代码中,首先,我们将数组按升序排序,然后从头到尾遍历数组。对于每个索引 i,创建两个变量 l = l + 1 和 r = n - 1。然后,我们运行一个循环直到 i 小于 r;如果 list1[i]、list1[j] 和 array[r] 的和等于零,则打印三元组并中断循环。 现在,我们检查和是否小于,如果是,则增加 l 的值;通过增加 l 的值,和将增加,因为列表已排序,所以 list1[i+1]>list1[l]。 如果和大于零,则减小 r 的值;通过减小 r 的值,和将减小,因为数组已排序,所以 list1[r-1] < list1[r]。 复杂度分析
结论本教程包括查找三元组的各种方法。我们还实现了代码,解释了其工作原理和相应的时间复杂度。 |
我们知道列表、元组和字典是 Python 中可用的数据结构,使我们能够以精确的方式构建冗长的代码。让我们快速回顾一下元组。元组是 Python 中一种不可变的数据结构,其元素...
阅读 3 分钟
在本教程中,我们将学习 TOML,即 Tom 的显式最小语言。它是一种相对较新的配置文件格式,被 Python 社区广泛使用。我们将讨论 TOML 的语法,使用 tomli 和 tomllib 来解析 TOML 文档以及……
7 分钟阅读
Python 自动化测试可以通过 Selenium Python 模块完成。Selenium Python 绑定提供了一个简单的 API,用于使用 Selenium WebDriver 编写功能和验收测试。访问“使用 get 方法导航链接 - Selenium Python”以学习如何使用...
阅读 2 分钟
如何将 Python 列表或可迭代对象拆分为块 在本教程中,我们将学习将 Python 列表或其他可迭代对象拆分为块的各种选项。迭代器方法:Python 中的迭代器是用于遍历可迭代对象(如列表)的项目,...
7 分钟阅读
数据分析是一种有效的技术,支持企业决策。在今天的教程中,我们将使用 Python 调查 Netflix 信息集并发现有趣的结果。Netflix 是全球最大和最受欢迎的在线服务之一,为客户提供庞大的电视节目库...
11 分钟阅读
Python 是最流行的***别编程语言之一。Python 为人工智能(TensorFlow、PyTorch)、机器学习(Pandas、NumPy、Matplotlib)和游戏开发(Pyglet、PyGame)等不同领域提供了庞大的库。我们也可以将 Python 视为新一代编程语言,因为它展示了它的...
阅读 48 分钟
?Python 中的实用函数是一个小型、独立的执行特定任务的代码片段。它被称为“实用程序”,因为它是一个有用的工具,使特定任务更容易执行。这些函数并非独立存在,而是为了...
阅读 2 分钟
- Cookie 的设置方法 Cookie 的处理是 Web 应用程序的一个重要概念。Django 提供了与 Cookie 交互的简单方法。Cookie 允许我们存储和检索保存在会话中的数据。会话和 Cookie 与……
阅读 6 分钟
简介 图形用户界面 (GUI) 是现代编程应用程序的基本组成部分,通过视觉元素增强用户体验。Tkinter 是一个流行的 Python GUI 库,它使开发人员能够创建交互式和易于使用的应用程序。其中一个功能为应用程序增添了专业感和视觉吸引力的是...
阅读 3 分钟
在本教程中,我们将编写程序来创建桌面/笔记本电脑电池通知程序,并使用 Python 编程语言发送电池百分比通知。作为笔记本电脑用户,我们必须了解笔记本电脑的电池百分比。如果我们有一个程序能提醒我们...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India