zoukankan      html  css  js  c++  java
  • 快乐数

    题目:

       

     思路:

      1 hashset 加入集合判断新的数是否在set中,防止死循环

      2 递归处理,出口时 n == 1 返回true ,   集合包含新的数据(拆分后的平方相加) 返回false 


    (一)代码

    class Solution {
        public boolean isHappy(int n) {
            //用于判断是否包含重复的数据
            HashSet<Integer> set = new HashSet<>();
            set.add(n);
            return dfs(n,set);
        }
    
        private boolean dfs(int n , HashSet<Integer> set){
    
            if(n == 1){
                return true;
            }
            //获取拆分后的平方数
            int v = get(n);
            //防止死循环
            if(set.contains(v)) return false;
            //加入set集合
            set.add(v);
            //递归判断
            return dfs(v,set);
        }
    
        private int get(int n){
            int count = 0 ;
            while(n != 0){
                int y = n % 10;
                count += y*y;
                n /= 10;
            }
            return count;
        }
    
    }

            今天快乐了么

  • 相关阅读:
    maven项目打ZIP包
    springBoot文档地址
    延迟队列DelayQueue
    图片处理依赖
    java模板引擎替换代码
    redisson笔记
    linux 自动备份脚本
    shell 远程备份日志
    amqp事务
    redis 事务
  • 原文地址:https://www.cnblogs.com/misscai/p/15419574.html
Copyright © 2011-2022 走看看