2026-06-01 18:12:40 +08:00
|
|
|
#+ANKI_DECK: study_deck_02
|
2026-06-01 17:12:10 +08:00
|
|
|
* TODO 0202. Happy Number :easy:
|
2026-06-01 02:33:30 +08:00
|
|
|
:PROPERTIES:
|
2026-06-01 17:22:07 +08:00
|
|
|
:NEETCODE: [[file:../../roadmap.org::*0202. Happy Number][0202. Happy Number]]
|
2026-06-01 02:33:30 +08:00
|
|
|
:END:
|
|
|
|
|
|
2026-06-01 17:22:07 +08:00
|
|
|
Write an algorithm to determine if a number ~n~ 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.
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
Return ~true~ /if/ ~n~ /is a happy number, and/ ~false~ /if not/.
|
|
|
|
|
|
|
|
|
|
*Example 1:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: n = 19
|
|
|
|
|
Output: true
|
|
|
|
|
Explanation:
|
|
|
|
|
12 + 92 = 82
|
|
|
|
|
82 + 22 = 68
|
|
|
|
|
62 + 82 = 100
|
|
|
|
|
12 + 02 + 02 = 1
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Example 2:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: n = 2
|
|
|
|
|
Output: false
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Constraints:*
|
|
|
|
|
|
|
|
|
|
- ~1 <= n <= 2^{31} - 1~
|
|
|
|
|
|
2026-06-01 02:39:53 +08:00
|
|
|
** TODO Approach
|
|
|
|
|
Write your approach here.
|
|
|
|
|
|
|
|
|
|
** TODO Python
|
2026-06-05 22:32:49 +08:00
|
|
|
#+begin_src python :lc-problem 202 :lc-lang python3
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution:
|
|
|
|
|
def isHappy(self, n: int) -> bool:
|
2026-06-01 02:39:53 +08:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** TODO C++
|
2026-06-05 22:32:49 +08:00
|
|
|
#+begin_src cpp :lc-problem 202
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution {
|
|
|
|
|
public:
|
|
|
|
|
bool isHappy(int n) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-06-01 02:33:30 +08:00
|
|
|
#+end_src
|