iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
生成式 AI

Chatting with ChatGPT——一天學習一題Leetcode系列 第 18

18天之LeetCode 202. Happy Number

  • 分享至 

  • xImage
  •  

18天沒什麼特殊意義,可能啤酒吧。

今天的題目大意:給定一個正整數 n,不斷將數字的每一位平方後相加,最後如果結果會變成 1,則稱為「快樂數 (happy number)」,否則會陷入無限循環而不是快樂數。請判斷 n 是否為快樂數。

class Solution {
    public boolean isHappy(int n) { 
    //定義方法 isHappy:輸入 n(正整數),輸出 boolean(是否快樂數)
        HashSet<Integer> seen = new HashSet<>();

        while (n != 1 && !seen.contains(n)) {
        // 當 n 不等於 1 且沒重複出現過時,繼續迭代。
        如果 n 變成 1 → 是快樂數。
        如果 n 重複出現 → 無限循環,不是快樂數。
            seen.add(n);
            n = getNext(n);
        }

        return n == 1;
    }

    private int getNext(int n) {
        int totalSum = 0;
        while (n > 0) {
            int d = n % 10;
            n = n / 10;
            totalSum += d * d;
        }
        return totalSum;
    }
}

上一篇
LeetCode 125. Valid Palindrome
下一篇
LeetCode 70. Climbing Stairs
系列文
Chatting with ChatGPT——一天學習一題Leetcode20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言