查找整数二进制表示中最长零序列2025年1月7日 | 阅读 4 分钟 问题是将一个整数进行转换,将其表示为一串二进制数字,然后确定其中被“1”包围的最长的“0”序列。换句话说,如果二进制表示字符串不包含任何夹在“1”之间的“0”,则结果应为 0。 此外,二进制数中的零后缀,如果未被“1”包围,则不应被计算在内。以二进制形式表示,数字 9 是 1001。最长的零序列的长度是 00,因此二进制间隙为 2。那么,数字 20 的二进制形式是 10100。最长的零序列是 0,因此二进制间隙为 1。 方法一
让我们在 Java 程序中实现上述方法。 文件名:LongestBinaryGap.java 输出 The longest binary gap for 529 is: 4 时间复杂度: 顺便说一句,该算法的时间复杂度也是 O(log n),因为在将整数转换为二进制格式后,算法只遍历二进制字符串或位数,这相当于 log n。 空间复杂度: 空间复杂度为 O(log n),主要是由于存储了整数的二进制形式,其大小约为 log n。 方法二
让我们在 Java 程序中实现上述方法。 文件名:LongestBinaryGap.java 输出 The longest binary gap for 529 is: 4 时间复杂度: 该解决方案的时间复杂度为 log(n)。这里,整数的每一位都需要一定的步数,而这些步数的数量与整数中存在的位数成正比。 空间复杂度: 空间复杂度为 O(1),因为程序仅创建几个整数变量,而与输入的大小无关。 结论基于字符串操作的第一个解决方案提供了一个常规、显而易见的解决方案,空间复杂度为 O(log n),但仍然足够。然而,上述位操作不需要存储整个二进制字符串,并且通过仅操作每一位,具有 O(1) 的空间复杂度。 两者都属于 O(log n) 的时间复杂度,但第一种方法需要较少的空间,在空间受限的环境中,第二种方法是首选。 下一个主题查找最长公共前缀的最小移位(Java) |
在本节中,我们将讨论 Java 中的标记接口、其用途、内置(Serializable、Cloneable 和 Remote 接口)以及带有示例的自定义标记接口。什么是标记接口?一个不包含方法、字段和常量的接口称为标记接口。换句话说,...
5 分钟阅读
Collection.forEach() 和 Collection.stream().forEach() 都用于遍历集合,并且彼此之间没有显著差异。两者之间没有重大区别,因为它们都提供相同的结果。但是,有一些区别。Collection.stream().forEach() 方法对对象组进行迭代...
阅读 4 分钟
我们给定一个二维布尔数组,其中每一行都按升序排序。我们的任务是找到具有最多 true 布尔值(也称为 1)的行,并返回该行的索引。示例 1:输入:1 0 1 1 1...
阅读 8 分钟
除法是一项基本的算术运算,但如果你不能使用除法 (/) 或模 (%) 运算符呢?在竞争性编程和系统设计中,你可能会遇到强制你打破常规的限制。一种这样的技术是使用二分查找来进行除法……
5 分钟阅读
在 Java 中,宏是 JDK 7 编译器的增强功能。它添加并支持编译时宏。宏是在编译时实例化和执行的 Java 类。宏接收源文件的解析树和可用于动态解析的 ParserFactory...
阅读 2 分钟
ArrayList 是 Java Collection 框架中的一个类。它使用动态数组来存储对象。它与 Array 非常相似,但它没有大小限制。我们可以随时添加或删除元素。我们可以存储...
阅读 8 分钟
Java 中 replace() 和 replaceAll() 的区别 Java String 类提供了各种方法来操作字符串。replace() 和 replaceAll() 方法是其中之一,它们用于将一个字符串替换为指定的子字符串。正如两种方法名称听起来都一样……
阅读 3 分钟
最近数问题是程序员面试中最受欢迎的问题之一,因为该问题的主要任务是在数组中查找一个与给定特定数字距离最近的数字。这个问题在许多计算...中都有实现。
阅读 4 分钟
二进制数制中两个连续值之间仅相差一位,这被称为“格雷码”。此外,数字信号处理和纠错也可以从中受益。将格雷码数字转换为其十进制等效数的过程称为...
阅读 4 分钟
Java Runnable 接口 Java runnable 是一个用于在并发线程上执行代码的接口。它是一个接口,如果我们希望该类的实例由线程执行,则该类需要实现该接口。Runnable 接口有一个未定义的...方法。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India