与给定数字最接近的三元组和17 Mar 2025 | 4 分钟阅读 问题陈述 给定一个由 N 个整数组成的整数数组 arr[] 和一个整数 X,目标是找出 arr[] 中的三个整数,它们的和最接近 X。 示例测试用例 测试用例 1 输入: arr[] = {-3, 5, 2, -8, 10}, X = 7 输出 7 说明 三元组的和 (-3) + 5 + 2 = 4 5 + 2 + (-8) = -1 (-3) + 2 + (-8) = -9 4 最接近 7。 测试用例 2 输入: arr[] = {0, -6, 4, 9, -2}, X = 3 输出 1 说明 三元组的和 0 + (-6) + 4 = -2 (-6) + 4 + 9 = 7 0 + 4 + (-2) = 2 1 最接近 3。 测试用例 3 输入: arr[] = {7, -1, 3, 6, -4}, X = 2 输出 0 说明 三元组的和 7 + (-1) + 3 = 9 (-1) + 3 + 6 = 8 7 + 3 + (-4) = 6 0 最接近 2。 方法 1:朴素方法 一种直接的方法是穷举检查给定数组中的所有大小为三的子集。在此过程中,算法会记录目标值 X 与每个子集和之间的差值。然后,找出其和与 X 之间差值最小的子集,并将其作为结果返回。 算法
如果是,则更新当前最小值。最后,输出获得的最近和。 上述方法的 Java 实现 输出 ![]() 复杂度分析 时间复杂度: O(n^3)
空间复杂度: O(1)
方法 2:使用排序
使用双指针算法可实现线性时间复杂度,使其成为嵌套循环的更好替代方案。 算法
上述方法的 Java 实现 输出 ![]() 复杂度分析 时间复杂度:O(n^2) 空间复杂度: O(1) 下一个主题应用操作以最大化频率分数 |
在这里,我们将创建两个堆栈,并且我们将只使用一个数组来实现这两个堆栈,即两个堆栈都将使用同一个数组来存储元素。有两种方法可以使用一个数组来实现两个堆栈:第一种方法首先,我们将数组分成...
阅读 4 分钟
N 元树的直径 N 元树概述 什么是 N 元树? N 元树是一种分层数据结构,它允许每个节点拥有不同数量的子节点。与只能拥有...的二叉树相比,N 元树提供了更灵活的建模能力。
阅读 4 分钟
? 在我们深入研究可变和不可变数据结构类别之前,让我们首先简要讨论可变性和不可变性的概念。可变数据结构 可变数据类型是可以通过进一步修改或更改的数据类型...
阅读 6 分钟
合并两个排序数组是在计算机科学中一个常见的过程。当您需要将这些数组就地合并而无需额外的空间分配时,就会出现困难。这个问题经常出现在面试和内存是关键限制因素的现实情况中。让我们来看看...
阅读9分钟
简介 哈希表是一种基本数据结构,可用于创建关联数组或键值对映射。它们具有 O(1) 的平均时间复杂度,可高效地执行插入、删除和检索操作。但是,在某些情况下,由于冲突,哈希表可能会经历性能下降...
7 分钟阅读
数组是一种数据结构,其中值或项以线性顺序放置,这意味着分配给每个项的内存是连续的。数组中所有元素的的元素的数据类型都相同。通过连续内存分配,...
阅读9分钟
本文旨在通过提供算法解释和示例代码,帮助您理解 C++ 中的水库采样。内容涵盖了水库采样的基础知识,包括实际用例、详细算法说明以及带有相应 C++ 实现的动手实践...
阅读 4 分钟
我们给出一个包含 n 个元素的数组,并且我们必须在该数组中找到一个元素,该元素能将数组分成两个部分,使得两个子数组的和相等。基本上,左侧的和与...
阅读 6 分钟
列表可以定义为一种抽象数据类型,其中元素以有序的方式存储,以便更轻松高效地检索元素。它允许重复,这意味着单个数据项可以在列表中出现多次……
阅读 16 分钟
传统上,要查找数组中的最大元素,我们使用一个循环来迭代所有元素并返回该值。伪代码实现如下。伪代码 // 查找给定数组中的最大元素。 // arr:我们想要查找的数组...
阅读 12 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India