青岛网页制作网站,怎么做像天猫类似的网站,运动品牌网站开发题目来源,成都网络营销搜索推广优势【力扣】202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为#xff1a; 对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过程…【力扣】202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为 对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true 不是则返回 false 。
示例 1 输入n 19 输出true 解释 12 92 82 82 22 68 62 82 100 12 02 02 1
示例 2 输入n 2 输出false
提示 1 n 2 31 2^{31} 231 - 1
题解
思路题目中说了会可能会无限循环那么也就是说求和的过程中sum会重复出现 —— 哈希
使用哈希法来判断这个 sum 是否重复出现如果重复了就是 return false 否则一直找到 sum 为1为止
import java.util.*;class Solution {public boolean isHappy(int n) {SetInteger record new HashSet();//n变为1了或者sum会重复出现了停止while (n ! 1 !record.contains(n)) {//哈希记住sum值record.add(n);int sum 0;while (n 0) {int temp n % 10;sum temp * temp;n n / 10;}n sum;}return n 1;}
}