【Leetcode】2549. 统计桌面上的不同数字

2024-03-23 10:52

本文主要是介绍【Leetcode】2549. 统计桌面上的不同数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 题目
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度
  • 结果
  • 总结

题目

题目链接🔗
给你一个正整数 n n n ,开始时,它放在桌面上。在 1 0 9 10^9 109 天内,每天都要执行下述步骤:

  • 对于出现在桌面上的每个数字 x ,找出符合 1 ≤ i ≤ n 1 \leq i \leq n 1in 且满足 x % i = = 1 x \% i == 1 x%i==1 的所有数字 i i i
  • 然后,将这些数字放在桌面上。

返回在 1 0 9 10^9 109 天之后,出现在桌面上的 不同 整数的数目。

注意:

  • 一旦数字放在桌面上,则会一直保留直到结束。
  • % 表示取余运算。例如, 14 % 3 14 \% 3 14%3 等于 2 2 2

示例 1
输入 n = 5 n = 5 n=5
输出 4 4 4
解释:最开始,5 在桌面上。
第二天, 2 2 2 4 4 4 也出现在桌面上,因为 5 % 2 = = 1 5 \% 2 == 1 5%2==1 5 % 4 = = 1 5 \% 4 == 1 5%4==1
再过一天 3 3 3 也出现在桌面上,因为 4 % 3 = = 1 4 \% 3 == 1 4%3==1
在十亿天结束时,桌面上的不同数字有 2 2 2 3 3 3 4 4 4 5 5 5

示例 2
输入 n = 3 n = 3 n=3
输出 2 2 2
解释
因为 3 % 2 = = 1 3 \% 2 == 1 3%2==1 2 2 2 也出现在桌面上。
在十亿天结束时,桌面上的不同数字只有两个: 2 2 2 3 3 3

提示

  • 1 ≤ n ≤ 100 1 \leq n \leq 100 1n100

思路

  • 第一天,桌面上只有一个数字 n n n,我们可以选择 i = n − 1 i=n-1 i=n1,因为 n % ( n − 1 ) = 1 n\%(n-1)=1 n%(n1)=1
  • 第二天,桌面上有两个数字 n n n n − 1 n-1 n1,我们可以选择 i = n − 2 i=n-2 i=n2,因为 ( n − 1 ) % ( n − 2 ) = 1 (n-1)\%(n-2)=1 (n1)%(n2)=1
  • ···
  • n − 2 n-2 n2天,桌面上有 n − 2 n-2 n2个数字 n n n n − 1 n-1 n1 ⋅ ⋅ ⋅ ··· ⋅⋅⋅ 3 3 3,我们可以选择 i = 2 i=2 i=2,因为 3 % 2 = 1 3\%2=1 3%2=1
  • n − 1 n-1 n1天,桌面上有 n − 1 n-1 n1个数字 n n n n − 1 n-1 n1 ⋅ ⋅ ⋅ ··· ⋅⋅⋅ 2 2 2,此时已经无法添加任何数字

·注意一开始就是 n = 1 n=1 n=1的话,桌面就会出现 1 1 1,总共一个数字;否则桌面上不会出现 1 1 1,总计 n − 1 n-1 n1个数字

代码

class Solution {
public:int distinctIntegers(int n) {return max(1,n-1);}
};

复杂度分析

时间复杂度

O(1)

空间复杂度

O(1)

结果

在这里插入图片描述

总结

数学结论题

这篇关于【Leetcode】2549. 统计桌面上的不同数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838099

相关文章

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

java字符串数字补齐位数详解

《java字符串数字补齐位数详解》:本文主要介绍java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java字符串数字补齐位数一、使用String.format()方法二、Apache Commons Lang库方法三、Java 11+的St

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相