列表

详情


6337. 统计桌面上的不同数字

给你一个正整数 n ,开始时,它放在桌面上。在 109 天内,每天都要执行下述步骤:

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

注意:

 

示例 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 。 

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int distinctIntegers(int n) { } };

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

上一题