Java 中集合位计数最多为 K 的最大整数2025年1月6日 | 3 分钟阅读 给定一个整数数组 nums[] 和一个正整数 K,任务是找出可以从数组中选择的最大数值数量,使得其二进制表示中的 1 的总数最多为 K。 示例 1 输入 int arr[] = {1, 3, 7, 8, 9}; int K = 6; 输出 集合二进制位之和最多为 K 的最大数值数量为 3 解释 对于给定的数组 {1, 3, 7, 8, 9},考虑 1、3 和 7 的二进制表示中 1 的总和为 6,等于 K,因此可以选择的最大数字数量是 3。 示例 2 输入 int arr[] = {2, 5, 6, 10, 12}; int K = 5; 输出 集合二进制位之和最多为 K 的最大数值数量为 3 解释 对于给定的数组 {2, 5, 6, 10, 12},考虑 2、5 和 6 的二进制表示中 1 的总和为 5,等于 K,因此可以选择的最大数字数量是 3。 示例 3 输入 int arr[] = {3, 4, 5, 15, 31}; int K = 8; 输出 集合二进制位之和最多为 K 的最大数值数量为 4 解释 对于给定的数组 {3, 4, 5, 15, 31},考虑 3、4、31 和 15 的二进制表示中 1 的总和为 8,等于 K,因此可以选择的最大数字数量是 4。 方法:使用动态规划算法步骤 1:创建一个名为 dp 的二维数组。该数组的 dp[i][j] 变量表示可以从数组的前 i 个元素中选择的整数数量,使得其二进制表示中的 1 的总数最多为 j。 步骤 2:可以使用递归公式来填充 dp 数组。 步骤 2.1:如果 bit_sum 是 nums[i - 1] 的二进制形式中的 1 的数量,则 dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - bit_sum] + 1),依此类推。 步骤 3:返回 dp[n][k],其中 n 是 nums 数组的长度,k 是给定的整数。 实施文件名:LargestIntegersSum.java 输出 The total number of values with sum of setbits atmost K is 3 复杂度分析 上述代码的时间复杂度为 O(N * K),其中 K 是给定的整数,N 是 nums 数组的长度。由于使用了大小为 N * K 的二维数组,空间复杂度也为 O(N * K)。 |
给定一个非负整数数组,其中每个数字出现的次数都是偶数,只有一个数字出现的次数是奇数。任务是找出出现次数是奇数的那个数字。例如:输入:a[] = {7,...
阅读9分钟
处理键值对数据是各种 Java 应用程序中的常见需求。通常,数据以字符串或字符串数组的形式到达,并将其转换为 Map 以进行有效处理变得至关重要。在同一上下文中,Map 提供了一种便捷的方式来访问和操作数据...
5 分钟阅读
Java 分析器是了解 Java 应用程序行为和故障排除性能问题的最佳工具。它们监控 JVM 对字节码的执行,并提供有关垃圾回收、堆内存使用、异常、类加载等详细信息。有时我们需要知道...
阅读9分钟
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常问到的问题。通过解决该问题,人们希望检查被面试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将计算...
5 分钟阅读
图中,所有其他顶点都可以到达的起始点称为母顶点。换句话说,如果顶点 v 是母顶点,则存在一条从 v 到网络中每个其他顶点的路径。寻找母...
阅读 6 分钟
稀疏向量构成许多应用(如科学计算、机器学习和信息检索)中的基本数据结构。当处理高维数据,其中大部分元素为零时,它们特别有用。本文提供了关于创建...
5 分钟阅读
重叠区间问题是应用到调度应用程序中的一个重要的计算挑战,同时也应用于计算几何和范围合并任务。给定一个区间范围,目标是快速处理它们以进行合并区间检测。两个区间 [a,... (省略了其他部分)
5 分钟阅读
java.nio.DoubleBuffer 有 array() 方法。使用 DoubleBuffer 类返回支持该缓冲区的 double 数组。对此缓冲区的更改也将更改返回数组的内容。在调用此函数之前,调用 hasArray() 方法以...
阅读 4 分钟
在编程中,打印不同形状和类型的星形图案可以是一个有趣的练习。打印此类图案的实践可以增强对嵌套循环的理解。因此,在本节中,我们将了解如何打印空心矩形或正方形星形图案……
7 分钟阅读
java.nio.charset 包含一个内置方法 averageBytesPerChar()。CharsetEncoder 返回为每个输入字符生成的平均字节数。对于给定的输入序列,启发式值用于确定所需的输出缓冲区大小……
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India