Equilibrium Index of an Array in Java2025年3月29日 | 阅读 5 分钟 在本节中,我们将学习 数组的平衡索引是什么 以及如何通过 Java 程序找到平衡索引。 ![]() 平衡索引如果低于索引元素的总和等于高于索引元素的总和,则称为 数组 的平衡索引。 例如,考虑数组 [-7, 1, 5, 2, -4, 3, 0],其中 a[0]=-7, a[1]=1, a[2]=5, a[3]=2, a[4]=-4, a[5]=3, a[6]=0 让我们找出平衡索引。根据定义 较低索引处的元素总和 = a[0]+a[1]+a[2] = -7+1+5 = -1 较高索引处的元素总和 = a[4]+a[5]+a[6] = -4+3+0 = -1 我们观察到较低索引处的元素总和等于较高索引处的元素总和。因此,对于给定的数组,平衡索引是 3。 在上面的数组中,6 也是一个平衡索引,因为 a[0] 到 a[5] 的总和为 0,而索引 a[6] 的值为 0。 ![]() 查找平衡索引的方法有三种方法可以找到数组的平衡索引
暴力破解法在此方法中,我们使用两个循环。外层循环遍历数组,内层循环检查是否存在平衡索引。该思想是为每个索引范围查找元素的总和,并观察是否存在平衡索引。它需要 O(n2) 的时间和 O(1) 的空间复杂度来解决问题。 算法步骤
让我们在 Java 程序中实现上述逻辑。 EquilibriumIndexExample1.java 输出 Equilibrium Index is: 3 在上述方法中,我们使用了嵌套循环来计算 i 的每个值的左侧和右侧总和。它执行 n(n-1) 次求和操作。 使用迭代方法该方法使用了一些额外的空间。在此方法中,我们存储了数组的前缀和。它跟踪数组中任何索引之前的所有元素的总和。现在,我们需要跟踪当前索引右侧的值的总和。 要找到当前索引右侧的值的总和,请减去当前索引处的值。现在比较 lsum 和 rsum,如果它们相等,则当前索引是平衡索引。 算法步骤
它的时间和空间复杂度分别为 O(n)。让我们在 Java 程序中实现上述算法。 EquilibriumIndexExample2.java 输出 Equilibrium Index is: 5 使用增量方法增量方法与迭代方法相同,只是有一些不同之处。该方法与之前的方法(迭代方法)的区别在于我们不需要存储前缀和。相反,我们在遍历数组的同时跟踪左侧总和。在此方法中,我们首先计算数组的总和。为了获得右侧总和,在循环中,我们逐个减去元素。它的时间和空间复杂度分别为 O(n) 和 O(1)。 算法步骤
让我们在 Java 程序中实现上述方法。 EquilibriumIndexExample3.java 输出 1 Equilibrium Index is: 4 输出 2 Equilibrium Index is: -1 |
在本节中,我们将学习如何在 Java 中查找链表的中间节点。我们还将探讨查找中间节点的各种方法。给定:链表的第一个节点或 Head 被给出(在我们的示例中是 14...
阅读 6 分钟
java.lang.StrictMath 类提供了许多用于执行数值运算的方法,例如确定平方、平方根、立方、立方根、指数结果和三角函数。它确保所有平台上的严格精度和一致的结果。public final class StrictMath extends Object 处理 NaN 参数:StrictMath...
11 分钟阅读
与 ClassNotFoundException 一样,NoClassDefFoundError 也会在运行时发生。当类在运行时程序中不可用时,我们会遇到此错误。它是一个未检查的异常,当请求的类在运行时不存在时,程序会抛出该异常。在这种情况下,该类是...
阅读 3 分钟
在 Java 中,阿姆斯特朗数、素数和回文数等数字程序经常被面试官问到。与其他数字程序不同,经济型数字并不经常被面试官问到。经济型数字是指其素数分解中的数字数量...
阅读 3 分钟
在 Java 中,当需要管理动态数据集合时,ArrayList 是一个受欢迎的选择。有时,我们可能需要将元素从一个 ArrayList 复制到另一个。该操作可以轻松执行,但为了确保,了解整个过程至关重要...
5 分钟阅读
在 Java 中,有各种场景需要获取机器的本地 IP 地址。无论是用于网络配置、套接字编程还是服务器设置,了解本地 IP 地址都是基础。在本节中,我们将探讨获取本地 IP 地址的不同方法...
阅读 3 分钟
在本节中,我们将学习什么是 xylem(木质部)和 phloem(韧皮部)数,并创建 Java 程序来检查给定的数字是 xylem 还是 phloem。xylem 和 phloem 数的程序经常出现在 Java 编码测试和学术界。Xylem 和 Phloem 数 一个数字 N...
阅读 2 分钟
调和数是一个迷人的数学概念,在物理、工程和计算机科学等各个领域都有应用。在本节中,我们将探讨调和数是什么,它们的意义以及如何在 Java 中计算它们。我们还将提供带有输出的示例 Java 程序……
阅读 4 分钟
在并发编程领域,管理共享数据和确保线程安全是关键方面。Java 作为一种流行的编程语言,提供了强大的功能来处理并发。其中一个概念是 Concurrent Array,它允许多个线程并发访问和修改元素,而无需...
阅读 4 分钟
在软件开发领域,文本处理是一项常见任务。无论您是构建搜索引擎、聊天机器人,还是任何处理文本的应用程序,您可能都需要确定某个单词是否存在于字符串中。在本节中,我们将...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India