DEV Community

Rakesh Reddy Peddamallu
Rakesh Reddy Peddamallu

Posted on

Leetcode - 202. Happy Number

Using Hashmap

Store all the numbers , and check for repeated number
if repetition occurs then its not a happy number

Javascript Code

/**
 * @param {number} n
 * @return {boolean}
 */
var isHappy = function (n) {
    const myMap = new Map();
    // The loop continues until we see a repeated number.
    while (!myMap.has(n)) {
        myMap.set(n);
        n = String(n).split("").reduce((sum,num)=> sum + Number(num) ** 2 , 0 );
    }
    return n==1;
};
Enter fullscreen mode Exit fullscreen mode

Using slow and fast pointers

Javascript Code

/**
 * @param {number} n
 * @return {boolean}
 */

const calculateSum = (n) => {
    let sum = 0;
    while (n > 0) {
        let digit = n % 10;
        sum += digit * digit;
        n = Math.floor(n / 10);
    }
    return sum
}
var isHappy = function (n) {

    let slow = n;
    let fast = calculateSum(fast); // ✅ Fast moves 1 step ahead before the loop

    while (slow != fast) {
        slow = calculateSum(slow);
        fast = calculateSum(calculateSum(fast));// ✅ Moves 2 steps per loop
    }
    return slow === 1
};
Enter fullscreen mode Exit fullscreen mode

this can be improved using do while loop since do while loop executes at least one time even if the condition fails

Javascript Code

/**
 * @param {number} n
 * @return {boolean}
 */

const calculateSum = (n) => {
    let sum = 0;
    while (n > 0) {
        let digit = n % 10;
        sum += digit * digit;
        n = Math.floor(n / 10);
    }
    return sum
}
var isHappy = function (n) {

    let slow = n;
    let fast = n;

    do {
        slow = calculateSum(slow);
        fast = calculateSum(calculateSum(fast));
    } while (slow != fast)
    return slow === 1
};
Enter fullscreen mode Exit fullscreen mode

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

Top comments (0)