We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
编写一个算法来判断一个数 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 <= 231 - 1
/** * @param {number} n * @return {boolean} 202. 快乐数 当它最后是快乐数,最后是能够得到1这个值的 1这个值就相当链表的尾节点就一个空节点 如果不是快乐数 说明它会一直的去 在某一个数 通过计算之后会等于前面的某一个数 这样的话它才会 一直的循环下去形成闭环 */ var isHappy = function(n) { // 1 <= n so 等于1的话它就是一个快乐数 if(n === 1) return true // 首先我们定义一个map结构 let mapper = new Map() let p = getNext(n) // 如果p不等于1的话 while(p !== 1) { if(!mapper.has(p)) { mapper.set(p, p) p = getNext(p) } else { return false } } // 跳出循环的时候 // 走到了最后一个节点也就是为1 return true }; // 获取它的下一个节点 var getNext = function(n) { let sum = 0 while(n) { // 计算的话我们从它的末位开始去 平方和相加 sum += (n % 10) ** 2 // 9 // 把n赋值为就是把它的个位数砍掉 n = Math.floor(n / 10) // 1 } // 计算完成之后,我们再把和返回出来 return sum }
The text was updated successfully, but these errors were encountered:
/** * @param {number} n * @return {boolean} 202. 快乐数 快慢指针的方法 */ var isHappy = function(n) { // 第一步判断n是不是等于1 if(n === 1) return true // 定义两个指针,一个每次走一步 let p = getNext(n) // 一个每次走两步 let q = getNext(getNext(n)) // 循环条件 while(p !== q && q !== 1) { p = getNext(p) q = getNext(getNext(q)) } return q === 1 }; // 获取它的下一个节点 var getNext = function(n) { let sum = 0 while(n) { // 计算的话我们从它的末位开始去 平方和相加 sum += (n % 10) ** 2 // 9 // 把n赋值为就是把它的个位数砍掉 n = Math.floor(n / 10) // 1 } // 计算完成之后,我们再把和返回出来 return sum }
Sorry, something went wrong.
No branches or pull requests
编写一个算法来判断一个数 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 <= 231 - 1
The text was updated successfully, but these errors were encountered: