Java 程序查找数组中的局部最小值2024 年 9 月 10 日 | 阅读 3 分钟 在本节中,我们将讨论数组中的局部最小值是什么以及如何通过 Java 程序找到局部最小值。 数组中的局部最小值是什么?如果一个数组元素小于其两个邻居(如果存在)元素,则称该元素是数组的局部最小值。对于数组的第一个和最后一个元素,仅考虑一个邻居元素进行比较。请注意,数组中可能存在多个局部最小值,但我们的目标是找到其中一个。 考虑以下示例。 输入: arr[] = {17, 12, 6, 18, 9, 2, 1}; 输出: 索引为 2 的元素是局部最小值。 元素 3 是上述数组的局部最小值,因为它小于其两个邻居。在上述数组中,我们观察到有多个局部最小值,它们是 5 和 4。 输入: arr[] = {45, 7, 20, 2, 3}; 输出: 索引为 1 的元素是局部最小值。 对于上面的数组,局部最小值是 7,因为它小于其两个元素(右侧和左侧)。 输入: arr[] = {6, 7, 8}; 输出: 索引为 0 的元素是局部最小值。 对于上面的数组,局部最小值是 6,因为它小于其右侧的邻居元素。 输入: arr[] = {7, 5, 3}; 输出: 索引为 2 的元素是局部最小值。 局部最小值的索引是 2。 对于上面的数组,局部最小值是 3,因为它小于其右侧的元素,并且没有右侧元素。 解决方案有两种方法
朴素方法在这种方法中,我们对数组执行线性扫描,一旦找到局部最小值,就返回它。通常,使用 for 循环并将每个元素与其邻居元素进行比较。此方法的复杂度为O(n)。 高效方法该方法基于二分查找。在此方法中,我们将中间元素与其邻居进行比较。
上述方法的复杂度为O(log n)。 让我们在 Java 程序中实现上述方法。 LocalMinimaExample.java 输出 Local Minima of the given array is: 3 下一主题Java 中的语音处理 |
对象是理解面向对象技术 (OOP) 的关键。面向对象编程的目的是在编程中实现现实世界中的实体。它还强调数据的绑定。有各种 OOPs 概念,其中对象是其中之一。在本节中,我们将...
阅读 2 分钟
如果一个正整数没有重复的数字,那么它就是唯一的。换句话说,如果一个数字的各位数字不重复,那么它就是唯一的。例如,20、56、9863、145 等是...
阅读 4 分钟
? Null Pointer Exception 是一种运行时异常,当 Java 程序尝试使用包含 null 值的对象引用时抛出。在以下情况下可以抛出 Null Pointer Exception:1. 使用对象调用方法...
阅读 4 分钟
称为序列化和反序列化的基本思想用于将 Java 对象转换为一种格式,以便可以快速传输、存储或重新创建。序列化 序列化是将对象转换为字节流的过程,以便它可以跨网络发送,保存在...
阅读 4 分钟
在本节中,我们将讨论如何在 Java 中打印国旗图案。国旗图案很少被面试官问到,因为它们很难编码。在这里,我们了解两个不同国家(即印度和美国)的国旗的代码。首先,我们...
阅读 3 分钟
在 Java 编程中,在字符串内交换字符是一项常见操作,涉及重新排列单个字符以达到所需的顺序。此过程在各种场景中都很重要,例如数据加密、算法转换或增强 Java 应用程序中的字符串操作功能。让我们探索各种 Java 方法……
阅读 8 分钟
在本节中,我们将学习什么是互质数,并创建 Java 程序来检查给定的数字是否是互质数。互质数程序经常在 Java 编码面试和学术界出现。质数 质数...
阅读 4 分钟
Java 中的流是什么?Java 流提供了一种强大有效的方法来处理元素序列,例如集合。Stream API 于 2015 年首次在 Java 8 中发布,它使程序员能够使用函数式编程方法表达复杂的数据转换和操作。在 Java 中,流是...
7 分钟阅读
java.util.function 包在 Java 8 中引入,其中包含 DoubleFunction 接口,用于支持 Java 中的函数式编程。它代表一个在接收双精度输入后生成 R 类型结果的函数。只接受一个泛型...
阅读 3 分钟
Java 编程语言需要变量来操作和处理数据。Java 会根据数据格式和数据类型创建几个变量。变量声明意味着在程序中创建变量以操作不同的信息。Java 变量声明会创建一个具有所需属性的新变量....
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India