打印数字的第k个最低有效位2025年3月17日 | 阅读 3 分钟 最低有效位我们知道,每个数字都可以表示成数字的形式,数字的格式可以是任何形式,如二进制、十进制、十六进制、八进制等。如果我们用比特来表示数字,那么最左边的数字称为最高有效位,最右边的数字称为最低有效位。 我们知道,最左边的比特具有更高的值,因为它乘以其基值的最高幂,所以在确定值方面具有最重要的意义。 最右边的数字乘以基值零次幂,因此在计算值方面贡献最小。这就是为什么它被称为最低有效位(LSB)。 例如 让我们以数字12为例,在二进制格式下;我们可以用0和1来表示12。 所以12的二进制表示是:1100 12的最高有效位是1,最低有效位是0。 现在,如果我们有了任何数字的二进制表示,我们就可以找到任何一个最低有效位。 方法 1我们将给出一个整数n和一个表示k的数字。所以,如果我们想要第k个最低有效位,我们只需获取该特定数字的二进制表示并将其存储到数组中,然后从数组的右侧开始,第k个元素将代表第k个最低有效位。 Java 代码 输出 ![]() ![]() 说明 在上面,我们使用了一个大小为32的数组来存储数字n的二进制表示。函数'getBinaryBits'将使用除法方法以二进制格式存储表示数字的二进制。 例如,我们取n=27,k=2。 所以27的二进制表示如下: ![]() 所以k=2意味着第2个最低有效位是1,它位于倒数第二个索引处。 在上面的代码中,我们使用了额外的空间来存储比特,所以时间和空间复杂度是O(32),接近常数。 方法 2另一种方法是我们将比特向右移动k-1次。 我们知道,每次移动一个元素时,最低有效位就会消失,所以通过执行这个操作k-1次,我们将从左侧移除前k-1个比特,而最右边的比特将代表我们的最低有效位。 现在,要确定比特是1还是0,我们将检查数字是否为偶数。如果是偶数,则最右边的比特是0。否则,它是1。 Java 代码 上述代码的时间复杂度为O(K),空间复杂度为O(1)。 方法 3这种方法说的是,我们将得到一个数字,其中第k位为1,其他位为0。现在,如果将该数字与n进行按位与运算,如果结果为零,则表示n的第k位为零。否则,n的第k位为一。 要获得第k位为1,其他位为0的数字,我们将1左移(k-1)次。 Java 代码 说明 让我们取n=16,k=3,所以我们将1左移(k-1)次,或者说两次。 ![]() 所以,我们将k左移了2次,并与n=16进行按位与运算,得到结果为0。因此,n的第3位肯定为零。 如果谈论时间复杂度,那么它也是常数时间,空间复杂度也是常数。 时间复杂度: O(1) 空间复杂度:O(1) 下一个主题用链表表示的两个数相加 |
线性搜索和二分搜索都是用于搜索元素的搜索方法。我们已将数组和键值都提供了这两种方法;我们所需要做的就是在数组中搜索该键。我们将返回对应于该键的索引值...
阅读 17 分钟
一个特定字符串的所有后缀都排列在一个后缀数组中。这个概念与后缀树相似,后缀树是文本所有后缀的压缩树。一个基本的数据结构,被许多处理字符串的算法使用,是...
阅读9分钟
引言 k 路归并排序是一种复杂的排序算法,它扩展了归并排序方法。k 路归并问题的目标是将 k 个已排序的数组合并成一个包含相同元素的已排序数组。虽然传统的归并排序算法合并两个子数组...
阅读 4 分钟
根据问题“检查给定的无序数组中是否存在相距 k 距离的重复元素”,我们必须确定在 k 距离范围内是否存在重复元素。给定的数组不适合 k 值,在这种情况下...
阅读 3 分钟
树是一种常见的非线性数据结构。与数组、栈、队列和链表等线性数据结构不同,树表示层次结构。树的排序信息无关紧要。它由两个指针和节点组成...
阅读 4 分钟
二叉树的最大宽度可以定义为二叉树中存在于特定层上的节点的最大数量。要计算二叉树的最大宽度,我们需要遍历...
阅读 22 分钟
最长公共子串 最长公共子串问题是查找两个字符串的最长子串的问题。最长公共子序列和最长公共子串之间有一个区别。在子串的情况下,子串中的所有元素必须是连续的...
阅读 4 分钟
简介:给定一个非负整数数组,其中每个元素代表一个数字。您的任务是找到数组中的一对数字,使其和最大,并且这两个数字共享相同的最大数字。编写一个函数 maxSumWithEqualMaxDigits(nums),该函数接受……
阅读9分钟
简介 矩阵搜索是基本计算机科学问题,对于从图像处理到数据库的许多应用都至关重要。当我们面对一个在行和列上都排序的矩阵时,我们可以使用更高级的搜索技术来最大化过程。我们将...
阅读 8 分钟
给定一个链表,编写一个函数,该函数高效地反转每隔 k 个节点(其中 k 是函数的输入)。示例:输入:1->2->3->4->5->6->7->8->9->NULL 和 k = 3 输出:3->2->1->4->5->6->9->8->7->NULL。方法 1(处理 2k 个节点并递归调用剩余列表)这种方法...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India