• 202. 快乐数(JavaScript)


    题目描述

    请添加图片描述

    解题思路

    如果不仔细看题目,就会觉得这题的样例会进入死循环,然后导致程序超时。

    然而这题主要是要理解题目的意思,重点在无限循环,也就是说求和的值会重复出现,如果我们要快速判断一个元素是否出现集合里的时候,首先就要想到哈希表查询

    补充

    取整:
    js中/与c和cpp不同,不会自动取整,一般取整方法如下:

    	n=Math.floor(n); //取整,返回一个小于n的最大整数。
    
    • 1

    JavaScript Map用法:

    • Map.set(key,value ): 可以给哈希表填充一个键值对
    • Map.get( key): 返回某个 Map 对象中的一个指定key的元素,也就是说可以获取到某个元素方便进行后续处理。
    • Map.has( key): 返回一个 bool 值,用来表明 map 中是否存在指定元素
    • Map.delete( key):移除 Map 对象中指定的元素。

    JavaScript Set用法:
    和map有区别,set对象是只有value作为参数。

    • Set.add(value):给set对象末尾添加一个值
    • Set.has(value):返回一个 bool 值,判断set对象内是否已经存入该值

    AC代码

    请添加图片描述
    Map方法:

    /**
     * @param {number} n
     * @return {boolean}
     */
    var isHappy = function(n) {
        let map = new Map();
    
        getSum =function (n){
            let sum = 0;
            while(n){
                sum+=(n%10)**2;
                n=Math.floor(n / 10); //取整
            }
            return sum;
        }
    
        while(1){
            n = getSum(n);
            if(map.has(n))
                return false;
            if(n==1)
                return true;
            map.set(n,1);
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    Set方法:

    /**
     * @param {number} n
     * @return {boolean}
     */
    var isHappy = function(n) {
        let set = new Set();
        getSum =function (n){
            let sum = 0;
            while(n){
                sum+=(n%10)**2;
                n=Math.floor(n / 10); //取整
            }
            return sum;
        }
        while(1){
            n = getSum(n);
            if(set.has(n))
                return false;
            if(n==1)
                return true;
            set.add(n);
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    关于HSV了解这些就够了,python-opencv获取图片精确hsv的值
    zotero通过DOI快速导入文献
    数据库事务
    报错:Unknown at rule @apply
    华硕平板k013me176cx线刷方法
    【爬虫】爬虫基础
    子集和数问题
    翻译: GitHub Copilot开启AI自动生成代码的时代
    大模型LLM 在线量化;GPTQ\AWQ量化及推理
    NLP词向量技术
  • 原文地址:https://blog.csdn.net/weixin_51914472/article/details/126762583