class Solution {
public:
int distinctIntegers(int n) {
}
};
6337. 统计桌面上的不同数字
给你一个正整数 n
,开始时,它放在桌面上。在 109
天内,每天都要执行下述步骤:
x
,找出符合 1 <= i <= n
且满足 x % i == 1
的所有数字 i
。返回在 109
天之后,出现在桌面上的 不同 整数的数目。
注意:
%
表示取余运算。例如,14 % 3
等于 2
。
示例 1:
输入:n = 5 输出:4 解释:最开始,5 在桌面上。 第二天,2 和 4 也出现在桌面上,因为 5 % 2 == 1 且 5 % 4 == 1 。 再过一天 3 也出现在桌面上,因为 4 % 3 == 1 。 在十亿天结束时,桌面上的不同数字有 2 、3 、4 、5 。
示例 2:
输入:n = 3 输出:2 解释: 因为 3 % 2 == 1 ,2 也出现在桌面上。 在十亿天结束时,桌面上的不同数字只有两个:2 和 3 。
提示:
1 <= n <= 100
原站题解
php 解法, 执行用时: 6 ms, 内存消耗: 20.1 MB, 提交时间: 2024-03-23 23:11:55
class Solution { /** * @param Integer $n * @return Integer */ function distinctIntegers($n) { return max($n-1, 1); } }
java 解法, 执行用时: 0 ms, 内存消耗: 39.4 MB, 提交时间: 2024-03-23 23:11:33
class Solution { public int distinctIntegers(int n) { return Math.max(1, n-1); } }
java 解法, 执行用时: 2 ms, 内存消耗: 38.4 MB, 提交时间: 2023-01-30 11:18:57
class Solution { public int distinctIntegers(int n) { if(n==1){ return 1; } Set<Integer> set = new HashSet<>(); for (int i = 1; i <= n; i++) { for(int j=n;j>=0;j--){ if(j% i==1){ set.add(n); set.add(i); } } } return set.size(); } }
cpp 解法, 执行用时: 236 ms, 内存消耗: 9.8 MB, 提交时间: 2023-01-30 11:18:19
class Solution { public: //模拟题 int distinctIntegers(int n) { queue<int> qu; set<int> se; qu.push(n); se.insert(n); while(!qu.empty()){ int x = qu.front(); for(int i=1;i<=n;i++){ //入队 if(x % i == 1){ qu.push(i); se.insert(i); } } qu.pop(); } return se.size(); } };
golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2023-01-30 11:17:35
func distinctIntegers(n int) int { if n == 1 { return 1 } return n-1 }
python3 解法, 执行用时: 32 ms, 内存消耗: 14.7 MB, 提交时间: 2023-01-30 11:16:55
''' 由于 n−1 一定满足要求,不断循环后,[2,n] 都会在桌面上,答案为n−1。 注意特判n=1时,答案为1. ''' class Solution: def distinctIntegers(self, n: int) -> int: return n - 1 if n > 1 else 1