查找下一个频率更高的元素2025 年 1 月 5 日 | 阅读 10 分钟 在本教程中,我们将学习如何编写 Python 程序来查找下一个更高频率的元素。我们将使用各种方法来解决这个问题。让我们先来理解问题陈述。 我们给定一个数组,需要确定最接近的右侧具有更高频率的元素。如果不存在这样的元素,则将其赋值为 -1。让我们来理解下面的例子。 示例 - 输入: a = [5, 3, 7, 2, 3, 8, 1] 输出 [-1, 7, -1, -1, 2, -1, -1] 说明 给定数组 a = [5, 3, 7, 2, 3, 8, 1] 每个元素的频率是:[1, 2, 1, 2, 2, 1, 1] 输出代表具有更高频率的最接近的右侧元素。 让我们为数组 a[] 中的每个元素确定下一个更高频率 (NGF) 元素。
通过这种方式,我们根据每个元素的频率和位置来确定 NGF 元素。 让我们使用朴素方法来解决这个问题。 解法 -1:朴素方法哈希技术是一种直接的方法,其中我们使用列表中的值作为索引来存储每个元素的频率。此方法只需要遍历数组一次。然后,我们使用两个循环
让我们理解下面的代码片段。 示例 - 输出 [-1, -1, 1, 2, 2, 1, -1] 解释 - 让我们来理解上面代码的分步解释。
该代码通过使用频率信息和嵌套循环有效地计算每个元素的 NGF。它为每个元素提供 NGF 或 -1,如输出和说明中所述。 解法 - 2:使用堆栈(高效方法)在此方法中,我们将使用堆栈数据结构来有效地解决此问题。让我们来理解以下步骤 -
通过使用堆栈有效跟踪下一个更高频率的元素,此方法可以找到 NGF 值,其时间复杂度为 O(n),其中 n 是输入数组中的元素数量。它比涉及嵌套循环的暴力方法更有效。 让我们理解下面的代码片段。 示例 - 输出 NGF elements for each element: [-1, -1, -1, -1, -1] 解法 - 3 暴力方法该方法很简单:首先,我们将所有元素的频率存储在一个映射中。然后,我们将所有元素按反向顺序推入堆栈。由于堆栈遵循后进先出 (LIFO) 原则,我们遍历向量,使用堆栈和映射为向量中的每个元素查找下一个更高频率 (NGF)。这种高效技术使我们能够确定数组中每个元素的 NGF。 让我们理解以下示例 - 示例 - 输出 1 --> -1 1 --> -1 2 --> 1 3 --> 2 4 --> 2 2 --> 1 1 --> -1 解释 - 让我们来理解上面代码的流程 -
解法 - 5 空间方法我们可以使用空间高效的方法更有效地解决此问题。 让我们来理解以下步骤。
这些步骤有效地查找并存储输入数组中每个元素的下一个更高频率 (NGF) 元素,为解决问题提供了一种清晰且简化的方法。 让我们来理解以下代码片段 - 示例 - 输出 [2, 2, 2, -1, -1, -1, -1, 3, -1, -1] 结论在本教程中,我们探讨了在数组中查找下一个更高频率 (NGF) 元素的各种方法。我们介绍了朴素方法、高效的基于堆栈的解决方案以及空间高效的解决方案,提供了不同性能和内存需求的选项。 下一个主题使用 DFS 查找岛屿数量 |
计算机视觉的核心任务之一是图像分类,旨在根据其内容对输入图像进行分类或标记。医疗图像分析、物体识别和面部识别等众多领域都可以从这项工作中受益。高级神经网络架构,例如...
阅读 4 分钟
?ROC 曲线在人工智能领域是不可或缺的工具,提供了一种图形化方法来评估二元分类模型的表现。在这个辅助工具中,我们将踏上一段使用两个广泛使用的库(Scikit-learn...)绘制 ROC 曲线的复杂过程之旅。
阅读9分钟
您是否曾因CodeChef恶毒的编译器而绝望地大喊,然后将额头砸在键盘上,喃喃地说:“EOF错误?”朋友,快过来加入俱乐部吧!但是,亲爱的读者,不要害怕!本文是您的EOF杀手锏和备忘单……
5 分钟阅读
简介 类似于 Unix 的操作系统有一个称为伪终端(PTY)的功能,它允许应用程序模拟真实终端的行为。这对于构建基于终端的应用程序、自动化任务以及执行交互式命令行程序等非常有帮助。您可以建立、管理和...
阅读 4 分钟
在接下来的教程中,我们将学习如何使用 Python 的 requests 库发送表单数据。Python Requests 简介 requests 库是 Python 中进行 Web 服务器请求必不可少且用户友好的 HTTP 库。它使发送...过程变得简单。
阅读 4 分钟
名为 Matplotlib 的 Python 模块是 NumPy 库的数学和数值扩展。Pyplot 是一个 Matplotlib 包,它使用基于状态的接口提供类似 MATLAB 的接口。在接下来的教程中,我们将了解 Python 中的 matplotlib.pyplot.contourf() 方法是什么以及如何实现它...
阅读 3 分钟
介绍 在高性能计算中,当速度和效率至关重要时,管理 CPU 亲和性就变得至关重要。由于 Python 是一种多功能语言,它提供了有效管理此类低级活动的功能。os.sched_setaffinity() 函数就是这样一种工具。CPU 亲和性工作原理及其如何...
阅读 3 分钟
地理编码是将由其地址描述的位置与特定坐标相关联的过程,这允许在地图上放置一些标记或在地理信息系统中定位点。Python 有多种执行地理编码的方法,其中最流行的工具之一是...
阅读 4 分钟
描述三维物体高度和形状的线条或曲线被称为 3D 等高线。这些等高线有助于我们理解各种物体组件的高度和深度。它们经常用于更精细地描述物体的形状...
阅读 6 分钟
多线程是 Python 中的一个重要概念,它允许不同的任务在并行核心或处理器上运行。这样,使用并行 for 循环,Python 可以将工作负载分配给线程,这在执行大量操作时肯定会有所帮助。在这种情况下,...
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India