【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

相关文章

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

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

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c