Partition Number in Java2025 年 5 月 8 日 | 阅读 5 分钟 在本节中,我们将学习什么是分区数,并创建Java 程序来检查给定数字是否为分区数。分区数程序经常出现在 Java 编码面试和学术中。 分区数在组合学和数论中,将数字 K(大于 0)分区意味着将数字 K 写成正整数之和。分区数也称为整数分区。请注意,在进行分区时,求和项的顺序无关紧要。让我们通过一个例子来理解它。 方法我们按排序顺序显示所有分区,并且分区内的数字也按排序顺序打印。其思想是借助当前分区中的值来实现下一个分区。 我们将每个分区存储在数组 ptt[] 中。我们将数组 ptt[] 初始化为 K,其中 K 是输入数字。在每次迭代中,我们首先打印 ptt[],然后更新数组 ptt[] 以保留下一个分区。因此,我们的问题就简化为从当前分区找到下一个分区。 借助当前位置查找下一个分区数的步骤当前分区存在于数组 ptt[] 中,并且其大小也已知。我们需要更新 ptt[] 以保留下一个分区。ptt[] 中的值应按非递增顺序排序。 步骤 1:查找数组 ptt[] 中最右边的非 1 值,并将该非 1 值之前遇到的 1 的计数保存在变量 r_val 中(它显示需要更新的右侧值的总和)。假设非 1 值的索引为 i。 步骤 2:将 ptt[i] 的值减一,并将 r_val 加一。现在可能有以下两种情况
步骤 3:将 ptt[i] 复制到下一个位置,递增 i,并在 ptt[i] 小于 r_val 时减去 ptt[i] 的计数。最后,将 r_val 放在 ptt[i + 1] 处,p[0…i + 1] 即为新分区。此步骤类似于将 r_val 分割成 ptt[i] 的项(4 被分割成 2)。 分区数示例令 K = 4,则 K 可以写成: 4 = 4 第一种方式 3 + 1 = 4 第二种方式(不考虑 1 + 3,因为求和项的顺序对分区没有影响) 2 + 2 = 4 第三种方式 2 + 1 + 1 = 4 第四种方式(同样,不考虑 1 + 2 + 1, 1 + 1 + 2) 1 + 1 + 1 + 1 = 4 第五种方式 因此,有五种唯一的方式来分割数字 4。下图显示了从 1 到 6 的数字分区。 ![]() 分区数 Java 程序让我们观察 Java 程序。 文件名:PartitionNumberExample.java 输出 All the Unique Partitions of 2 are: 2 1 1 All the Unique Partitions of 3 are: 3 2 1 1 1 1 All the Unique Partitions of 4 are: 4 3 1 2 2 2 1 1 1 1 1 1 All the Unique Partitions of 5 are: 5 4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 说明: Java 程序基于上述方法。这里的关键是在进行分区时保持非递增顺序,并在发生违规时,在程序开始之前遵循上面定义的步骤 2 和步骤 3。 |
每个局部变量和最终空白字段在访问任何值时都会具有赋给它的值。值访问将包括变量的名称或表达式中出现的区域,除了赋值运算符 "=" 的左侧操作数。要...
阅读 15 分钟
K4 City程序使用一种称为k-means聚类算法的方法。该算法用于将相似的数据点分组。在这种情况下,数据点是城市。该程序使用k-means聚类算法来查找将充当中心或...
5 分钟阅读
给出一个整数数组。此外,还给出一个数字 K。我们的任务是找出给定整数数组中出现次数最多的 K 个元素。示例:1 输入:Int arr[] = {5, 5, 3, 7, 9, 7, 0, 1, 2, 7}, int k =……
阅读9分钟
Java 是最广泛使用的编程语言之一,它不断发展以提高开发人员的生产力和代码可读性。随着 Java 10 的发布,引入了 var 关键字,允许开发人员声明局部变量而不必显式指定其数据类型。这项功能带来了...
阅读 4 分钟
这是 Google、Amazon、TCS、Accenture、Flipkart 等顶级 IT 公司面试中经常提出的问题。通过解决问题,人们希望检查应聘者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将...
阅读 6 分钟
Java IntSummaryStatistics 类的 getMax() 函数用于检索此 IntSummaryStatistics 中的最大记录数。语法:public int getMax() 参数:此方法不接受任何参数。返回值:此 IntSummaryStatistics 中的最大记录数由...返回。
阅读 2 分钟
Java 泛型引入了参数化类型的概念,这彻底改变了程序员创建 Java 代码的方式。因此,编程进入了一个新的时代,Java 代码更短、更具适应性、类型安全。为了实现这些优势,许多设计模式都利用 Java...
阅读 10 分钟
给定一个字符串 S,判断它是否是 K-回文。当从 K-回文字符串中删除最多 K 个字符时,字符串变为回文。在这里,任务是从给定字符串中删除最多 K 个字符,以将其转换为其...
阅读 6 分钟
图像处理是计算机视觉的一个重要方面,并广泛用于医疗成像、安全和多媒体等各种应用中。图像处理中的基本操作之一是将彩色图像转换为灰度图像。灰度图像更简单,...
阅读 4 分钟
给出了一个数字 n。我们的任务是找出 1 到 n 之间存在的自描述数字。自描述数字 m 是一个数字,它在基数 b 中包含 b 个数字,其中最高有效数字位于 0 位置,...。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India