Java 中素数整数子数组的最大总和2025 年 1 月 6 日 | 阅读 5 分钟 给定一个大小为 n 的整数数组 arr[],找出连续子数组的最大和,该子数组仅由素数组成。换句话说,不允许在选定的子数组中存在非素数。 示例 1 输入 int a[] = { 8, 1, 2, 4, 3, 7, 5, 11, 13 } 输出 从素数子数组获得的最大和为 39。 解释 对于给定的数组 { 8, 1, 2, 4, 3, 7, 5, 11, 13 },素数子数组为 { 3, 7, 5, 11, 13 },和为 (3 + 7 + 5 + 11 + 13 = 39)。因此,从素数子数组获得的最大和为 39。 示例 2 输入 int a[] = { 1, 5, 8, 4, 7, 5, 1, 3, 7 } 输出 从素数子数组获得的最大和为 12。 解释 对于给定的数组 { 1, 5, 8, 4, 7, 5, 1, 3, 7 },素数子数组为 { 7, 5 },和为 (7 + 5 = 12)。因此,从素数子数组获得的最大和为 12。 示例 3 输入 int a[] = { 8, 9, 7, 4, 4, 1, 10, 5, 6, 7 } 输出 从素数子数组获得的最大和为 7。 解释 对于给定的数组 { 8, 9, 7, 4, 4, 1, 10, 5, 6, 7 },素数子数组为 { 7 },和为 7。因此,从素数子数组获得的最大和为 7。 方法:朴素方法其思想是跟踪最大总和,并检查所有仅包含素数的潜在子数组。 算法步骤 1:将 maxSum 的初始值设置为 0。 步骤 2:通过循环遍历 arr 中的每个子数组。 步骤 2.1:验证当前子数组是否仅包含素数。 步骤 2.1.1:如果是,则计算其总和。 步骤 2.1.2:如果其和大于 maxSum,则更新 maxSum。 步骤 3:返回 maxSum。 实施文件名:MaxiSubArraySum.java 输出 The maximum sum obtained from the prime sub-array is 39 复杂度分析 上述代码的时间复杂度为 O(N2*√N)),因为我们首先确定子数组中的每个整数是否为素数,然后我们又验证所有可能的子数组。空间复杂度为 O(1),保持不变。 方法:高效方法创建基本的线性遍历是遵循的策略。当出现素数时,我们继续将当前和累加,并且每次当前和增加时,我们都会更新最大和。如果找到非素数,我们会将当前和重置为 0。 算法步骤 1:将 cur_Sum 和 max_Sum 初始化为 0。 步骤 2:对数组中的每个元素进行迭代。 步骤 2.1:如果该元素是素数 步骤 2.1.1:将其添加到 cur_Sum 中。 步骤 2.1.2:更新 max_Sum,使其等于 cur_Sum 和 max_Sum 中的较大者。 步骤 2.2:如果该元素不是素数。 步骤 2.2.1:将 cur_Sum 重置为零。 步骤 3:返回 max_Sum。 步骤 4:返回从主子数组获得的最大总和。 实施文件名:EfficientMaxiSumSubArray.java 输出 The maximum sum obtained from the prime sub-array 39 复杂度分析 时间复杂度为 O(n√N),其中 N 是输入数组中的最大元素值,n 是数组中的元素数量。空间复杂度为 O(1)。 |
Boyer-Moore算法是Robert S. Boyer和J Strother Moore于1977年开发的一种字符串搜索或匹配算法。它是一种广泛使用且最高效的字符串匹配算法。它比蛮力算法快得多。在本节中,我们将讨论...
阅读 12 分钟
Java 技术无需介绍。世界各地的人们仍然对 Java 在 Web 和移动开发中令人惊叹的力量感到惊叹。当然,您也可能被 Java 在软件开发中的流行度和垄断地位所吸引,并且可能想使用...
阅读 8 分钟
Java 不支持类之间的多重继承,以避免钻石问题,该问题在多个父类提供具有相同签名的时会引起歧义。然而,随着 Java 8 中默认方法的引入,通过接口支持多重继承。虽然这增加了灵活性,但冲突...
阅读 6 分钟
在 Java 中,继承使一个类能够采用另一个类的行为和功能。从中继承功能和行为的类被称为基类、父类或超类。接收类通常被称为子类,...
阅读 4 分钟
Java 的泛型提供了一种强大而安全的方式来创建处理各种类型但仍保持类型安全性的类、接口和方法。通配符在泛型中的应用进一步增强了其灵活性,使您能够设计更具适应性和可重用性的代码。上界通配符是一种...
阅读 4 分钟
? Java 多线程允许程序中多个线程的并发操作。但是,当多个线程使用相同资源时,可能会出现数据不一致和种族状况等问题。Java 提供了同步技术来解决这些问题。Synchronized Keyword Java 同步的关键组成部分是 synchronized……
阅读 6 分钟
在 Java 7 中,Path 接口被添加到 Java NIO。Java Path 接口的完全限定名称是 java.nio.file,因为 Path 接口是 java.nio.file 包的一部分。route。Java Path 实例代表文件系统路径。一个路径...
阅读 2 分钟
场景 1:缓存 您需要从数据库加载股票交易所证券代码及其价格,并将其缓存以提高性能。证券代码需要每 30 分钟刷新一次。此缓存数据需要由单个写入线程填充和刷新,并且……
阅读 19 分钟
main 方法是执行 Java 代码的起点。如果在运行时 JVM 找不到 main 方法,将抛出运行时异常。换句话说,如果 Java 代码中不存在 main 方法,JVM 将报告错误……
阅读 6 分钟
给定一个字符串 S,判断它是否是 K-回文。当从 K-回文字符串中删除最多 K 个字符时,字符串变为回文。在这里,任务是从给定字符串中删除最多 K 个字符,以将其转换为其...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India