《LeetCode力扣练习》代码随想录——哈希表(快乐数---Java)

《LeetCode力扣练习》代码随想录------哈希表(快乐数---Java)



刷题思路来源于 代码随想录

202. 快乐数
Set哈希表------空间复杂度: O(logn)
java 复制代码
class Solution {
    public boolean isHappy(int n) {

        if(n==1){
            return true;
        }

        Set<Integer> hashSet=new HashSet<>();
        hashSet.add(n);

        while(n!=1){

            n=getSum(n);

            if(hashSet.contains(n)){
                return false;
            }

            hashSet.add(n);

        }

        return true;

    }

    private int getSum(int n){

        int result=0;

        while(n!=0){

            int temp=n%10;
            result=result+(temp*temp);
            n=n/10;

        }

        return result;

    }
}
快慢指针------空间复杂度: O(1)
java 复制代码
class Solution {
    public boolean isHappy(int n) {

        if(n==1){
            return true;
        }

        int slow=getSum(n);
        int fast=getSum(getSum(n));

        while(slow!=fast){

            if(fast==1){
                return true;
            }

            slow=getSum(slow);
            fast=getSum(getSum(fast));

        }

        return fast==1?true:false;

    }

    private int getSum(int n){

        int result=0;

        while(n!=0){

            int temp=n%10;
            result=result+(temp*temp);
            n=n/10;

        }

        return result;

    }
}

相关推荐
ok_hahaha6 分钟前
java从头开始-黑马点评-基础篇
java·开发语言
小涛不学习21 分钟前
Java面试全攻略(基础 + 集合 + 并发 + JVM + 框架)
java·开发语言
SmartBrain27 分钟前
Spring Boot 中常用注解总结(AI工程化)
java·人工智能·spring boot·后端
爱丽_31 分钟前
AQS 原理主线:state、CLH 队列、独占/共享与实战排查
java·开发语言·jvm
小江的记录本39 分钟前
【Redis】Redis常用命令速查表(完整版)
java·前端·数据库·redis·后端·spring·缓存
卓怡学长39 分钟前
m281基于SSM框架的电脑测评系统
java·数据库·spring·tomcat·maven·intellij-idea
umeelove3542 分钟前
SQL中的DISTINCT、SQL DISTINCT详解、DISTINCT的用法、DISTINCT注意事项
java·数据库·sql
AMoon丶43 分钟前
Golang--垃圾回收
java·linux·开发语言·jvm·后端·算法·golang
填满你的记忆43 分钟前
RAG 架构在实际项目中的应用(从原理到落地)
java·ai·架构
承渊政道44 分钟前
【优选算法】(实战感悟二分查找算法的思想原理)
c++·笔记·学习·算法·leetcode·visual studio code