📌  相关文章
📜  打印所有小于N的数字,最多2个唯一数字(1)

📅  最后修改于: 2023-12-03 15:39:41.475000             🧑  作者: Mango

题目介绍

本题要求实现一个程序,打印所有小于N的数字,且最多包含2个唯一数字。

输入与输出

输入
  • N:一个正整数。
输出
  • 小于N的数字,且包含最多2个唯一数字。

代码实现

以下是一个Python的代码实现:

def print_numbers(n):
    """
    打印所有小于N的数字,最多2个唯一数字
    """
    for i in range(n):
        digits = set(str(i))
        if len(digits) <= 2:
            print(i)

算法原理

本题中的算法原理比较简单,即通过循环遍历小于N的数字,然后对每个数字将其转换为字符串,并使用集合数据结构去重,最后判断集合中的元素数量是否小于等于2,如果是,则将该数字打印出来。

时间复杂度

由于该算法只涉及到简单的循环和集合操作,因此时间复杂度为$O(n)$,其中$n$为输入数字的大小。

空间复杂度

算法中最消耗空间的内容是集合,因此空间复杂度为$O(kn)$,其中$k$为集合中不同字符的数量,最坏情况下$k$为2(即最多只包含2个唯一数字),因此实际空间复杂度为$O(n)$。