Java 中的自描述数10 Sept 2024 | 5 分钟阅读 给定一个数字 n。我们的任务是找出 1 到 n 之间的自描述数字。 自描述数字自描述数字 m 是一个在 b 进制下有 b 个数字的数字,其中最高有效数字位于 0 位,最低有效数字位于 b - 1 位(从左到右,零索引,类似于数组)。此外,位于 n 处的每个数字 d,都计数数字 n 在 m 中出现的次数。观察以下示例。 示例 1 m = 2020 输出: 2020 是一个自描述数字。 解释: 由于数字 2020 只有 4 位,因此考虑使用 4 进制。数字 2 位于 0 位,表示 0 出现了两次。数字 0 位于 1 位,表示 1 出现了零次。再次,数字 2 位于 2 位,表示 2 出现了两次。之后,数字 0 放在 3 位,表示 3 出现了零次。如果我们查看数字,会发现 0 出现了两次。2 出现了两次。此外,1 和 3 出现了零次。因此,上面段落中写的所有陈述都是正确的。因此,2020 是一个自描述数字。 示例 2 m = 6210001000 输出: 6210001000 是一个自描述数字。 解释: 由于数字 2020 只有 10 位,因此考虑使用 10 进制。数字 6 位于 0 位,表示 0 出现了六次。数字 2 位于 1 位,表示 1 出现了两次。再次,数字 1 位于 2 位,表示 2 出现了一次。之后,数字 0 放在 3 位、4 位、5 位、7 位、8 位和 9 位,表示数字 3、4、5、7、8 和 9 出现了零次。在 6 位,我们看到数字 1,表示 6 出现了一次。如果我们查看数字,会发现 6 出现了一次。2 出现了一次。1 出现了两次。2 出现了一次,0 出现了六次。此外,3、4、5、7、8 和 9 出现了零次。因此,上面段落中写的所有陈述都是正确的。因此,6210001000 是一个自描述数字。 实现: 使用嵌套循环观察以下查找自描述数字的程序。 文件名: SelfDescriptive.java 输出 In the range 1 to 100000, we have the following self-descriptive numbers. 1210 2020 21200 解释: 在外层循环中,每次迭代都会提取所有数字并将其保存在变量 v 中。然后,在内层循环中,有一个变量 cnt 用于计算数字 j(此 j 是外层循环的 jth 索引)在字符串中出现的次数。最终,将变量 cnt 与变量 v 进行比较。如果比较不匹配,则返回 false 值。 复杂度分析: 程序的 time complexity 为 O(n * len(n) * len(n))。 space complexity 为 O(1)。 如果我们进行一些预处理,将数字的频率存储在一个数组中,那么我们可以降低程序的复杂度。下面程序中给出了该方法的说明。 文件名: SelfDescriptive1.java 输出 In the range 1 to 100000, we have the following self-descriptive numbers. 1210 2020 21200 复杂度分析: 程序的 time complexity 为 O(n * len(n))。 space complexity 为 O(1)。有人可能会争辩说我们使用了辅助数组。然而,辅助数组的大小为 10,并且在任何情况下都不会改变。因此,我们可以说辅助数组的大小是固定的,使得 space complexity 为 O(1)。 下一个主题Java 中的混合继承 |
Java 是一种流行的编程语言,被世界各地的开发人员用于构建各种应用程序。尽管 Java 流行且可靠,但 Java 程序容易出错和出现异常。Java 中最常见的异常之一是 ClassNotFoundException。在本文中,...
阅读 4 分钟
? 继承的概念允许类继承其他类的特性和属性。它是 OOP 的基本概念。因为在单继承中,一个类只能从一个超类继承。但是,Java 通过接口提供了实现多重继承的方式。使用接口,...
5 分钟阅读
词典顺序这个术语是一个数学术语,也称为:词典顺序、字典序、字母顺序或字典顺序。本节将涵盖词典顺序的主题、其定义以及其他详细信息。之后,我们将学习如何使用词典顺序的概念...
7 分钟阅读
ClassLoader 在 Java 中是一个抽象类。它属于 java.lang 包。它从不同的资源加载类。在运行时用于加载类。换句话说,JVM 在运行时执行链接过程。类被加载到 JVM 中...
5 分钟阅读
Web 浏览器利用一种称为 CORS(跨域资源共享)的安全功能,阻止网站向非原始域发出请求。通过限制 Web 应用程序只能与来自其原始域的资源进行交互,除非获得明确许可...
阅读 2 分钟
在 Java 中,一个有效的 final 变量不是用 final 关键字声明的,但它的值在初始赋值后不会改变。当处理 lambda 表达式和匿名内部类时,此概念至关重要,它们只能访问是...的局部变量。
7 分钟阅读
在 Java 中,HashSet 是一个仅包含唯一元素的集合。元素的顺序不被维护,并且不允许存储重复值。使用 HashSet 可以以常量时间执行添加、删除、包含和大小等基本操作。我们将介绍...
阅读 4 分钟
在 Java 中删除数组中的重复项有几种方法,每种方法都满足特定需求。我们将探讨使用 set(或 HashSet)、就地排序数组以及 map 或频率数组等方法。1. 使用 Set(或...
阅读 6 分钟
在 Java 中,当我们在变量前面使用双精度数据类型时,它表示小数点后有 15 位数字。但有时我们只需要小数点后两位,例如表示卢比和其他单位。因此,在本节中,我们将...
阅读 3 分钟
给定一个 m x n 的正整数二维网格。我们需要以之字形路径遍历网格,避开每个单元格。以下阶段用于定义之字形模式。从左上角的单元格 (0, 0) 开始。当...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India