202. Happy Number LeetCode Solution
In this guide, you will get 202. Happy Number LeetCode Solution with the best time and space complexity. The solution to Happy Number problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Happy Number solution in C++
- Happy Number solution in Java
- Happy Number solution in Python
- Additional Resources
Problem Statement of Happy Number
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:
Input: n = 19
Output: true
Explanation:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
Example 2:
Input: n = 2
Output: false
Constraints:
1 <= n <= 231 – 1
Complexity Analysis
- Time Complexity: O(\log n)
- Space Complexity: O(1)
202. Happy Number LeetCode Solution in C++
class Solution {
public:
bool isHappy(int n) {
int slow = squaredSum(n);
int fast = squaredSum(squaredSum(n));
while (slow != fast) {
slow = squaredSum(slow);
fast = squaredSum(squaredSum(fast));
}
return slow == 1;
}
private:
int squaredSum(int n) {
int sum = 0;
while (n > 0) {
sum += pow(n % 10, 2);
n /= 10;
}
return sum;
};
};
/* code provided by PROGIEZ */
202. Happy Number LeetCode Solution in Java
class Solution {
public boolean isHappy(int n) {
int slow = squaredSum(n);
int fast = squaredSum(squaredSum(n));
while (slow != fast) {
slow = squaredSum(slow);
fast = squaredSum(squaredSum(fast));
}
return slow == 1;
}
private int squaredSum(int n) {
int sum = 0;
while (n > 0) {
sum += Math.pow(n % 10, 2);
n /= 10;
}
return sum;
}
}
// code provided by PROGIEZ
202. Happy Number LeetCode Solution in Python
class Solution:
def isHappy(self, n: int) -> bool:
def squaredSum(n: int) -> bool:
summ = 0
while n > 0:
summ += pow(n % 10, 2)
n //= 10
return summ
slow = squaredSum(n)
fast = squaredSum(squaredSum(n))
while slow != fast:
slow = squaredSum(slow)
fast = squaredSum(squaredSum(fast))
return slow == 1
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.