【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

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

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

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