• Happy Number 分类: Leetcode(查找) 2015-07-17 10:00 2人阅读 评论(0) 收藏


    1. 题目

    Write an algorithm to determine if a number is “happy”.

    A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.

    Example: 19 is a happy number

    • 2 + 9 2 = 82
    • 2 + 2 2 = 68
    • 2 + 8 2 = 100
    • 2 + 0 2 + 0 2 = 1
    简单的水题,用hash表去判断有无重复。一个巧妙的解题思路是,对于循环重复的情况,可以用slow和fast两个变量来代替hash表。

    class Solution {
    public:
        bool isHappy(int n) {
            if (n < 1)
                return false;
            if (n == 1)
                return true;
            unordered_set<int> showedNums;
            showedNums.insert(n);
            
            while(true) {
                int s = 0;
                while(n){
                    s +=(n%10)*(n%10);
                    n = n / 10;
                }
                if(s==1)
                    return true;
                else if(showedNums.find(s)!=showedNums.end())
                    return false;
                n = s;
                showedNums.insert(s);
            }
            
            
        }
    };

    class Solution {
    public:
    
        int cal(int n){
            int s = 0;
            while(n){
                s +=(n%10)*(n%10);
                n /= 10;
            }
            return s;
        }
        bool isHappy(int n) {
            if (n < 1)
                return false;
            if (n == 1)
                return true;
            int slow=n,fast=n;
            do {
                slow = cal(slow);
                fast = cal(fast);
                fast = cal(fast);
            }while(slow != fast);
            if(slow ==1) return 1;
            else return 0;
            
            
        }
    };



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    kafka学习
    centos/Fedora/RHEL 安全设置
    cordon、drain、delete node区别
    HARBOR 仓库 API功能接口
    gcr 镜像无法下载问题
    linux系统 重启盘符错乱问题
    Kafka史上最详细原理总结
    redis 部署
    mongodb4.0 安装
    gitstats 统计gitlab仓库中的代码
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656926.html
Copyright © 2020-2023  润新知