Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3e069c6

Browse files
更新 0202.快乐数
1 parent c911b6b commit 3e069c6

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

‎problems/0202.快乐数.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -159,26 +159,28 @@ func getSum(n int) int {
159159
javaScript:
160160

161161
```js
162-
function getN(n) {
163-
if (n == 1 || n == 0) return n;
164-
let res = 0;
165-
while (n) {
166-
res += (n % 10) * (n % 10);
167-
n = parseInt(n / 10);
162+
var isHappy = function (n) {
163+
let m = new Map()
164+
165+
const getSum = (num) => {
166+
let sum = 0
167+
while (n) {
168+
sum += (n % 10) ** 2
169+
n = Math.floor(n / 10)
170+
}
171+
return sum
168172
}
169-
return res;
170-
}
171173

172-
var isHappy = function(n) {
173-
const sumSet = new Set();
174-
while (n != 1 && !sumSet.has(n)) {
175-
sumSet.add(n);
176-
n = getN(n);
174+
while (true) {
175+
// n出现过,证明已陷入无限循环
176+
if (m.has(n)) return false
177+
if (n === 1) return true
178+
m.set(n, 1)
179+
n = getSum(n)
177180
}
178-
return n == 1;
179-
};
181+
}
180182

181-
// 使用环形链表的思想 说明出现闭环 退出循环
183+
// 方法二:使用环形链表的思想 说明出现闭环 退出循环
182184
var isHappy = function(n) {
183185
if (getN(n) == 1) return true;
184186
let a = getN(n), b = getN(getN(n));

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /