zoukankan      html  css  js  c++  java
  • 快慢指针(比较快慢指针是否相同)--18--快慢指针--Leetcode202.快乐数

    202.快乐数

    编写一个算法来判断一个数 n 是不是快乐数。

      「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,

    也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。

    示例:
    输入:19
    输出:true


    解释:
      12 + 92 = 82
      82 + 22 = 68
      62 + 82 = 100
      12 + 02 + 02 = 1

    解题代码:

     1 public class Solution {
     2     public int squareSum(int n) {
     3         int sum = 0;
     4         while(n > 0){
     5             int digit = n % 10;
     6             sum += digit * digit;
     7             n /= 10;
     8         }
     9         return sum;
    10     }
    11 
    12     public boolean isHappy(int n) {
    13         int slow = n, fast = squareSum(n);
    14         while (slow != fast){//如果快指针等于了慢指针时,跳出循环
    15             slow = squareSum(slow);
    16             fast = squareSum(squareSum(fast));
    17         };
    18         return slow == 1;
    19     }
    20  }
  • 相关阅读:
    mac 使用tree命令
    为什么redis支持lua脚本功能
    redis协议
    Linux的SOCKET编程详解
    大型网站架构之分布式消息队列
    自定义String
    逆转单链表
    单例模式 C++
    构造函数不能为虚函数
    Windows消息机制
  • 原文地址:https://www.cnblogs.com/qinqin-me/p/12835570.html
Copyright © 2011-2022 走看看