• 30-Day Leetcoding Challenge Day2


    本题涉及判断是否有loop

    两种思路:1.用set存储路径 2.快慢指针法

    JAVA:set()集合法

    class Solution {
        public boolean isHappy(int n) {
            Set<Integer> process = new HashSet<>();
            while(process.add(n)){
                int square = 0;
                while(n != 0){
                    square += (n % 10)*(n % 10);
                    n /= 10;
                }
                if(square == 1)
                    return true;
                else
                    n = square;
            }
            return false;
        }
    }

    JAVA:快慢指针法

    class Solution {
        public boolean isHappy(int n) {
            int slow = n;
            int fast = square(n);
            while(fast != 1){
                slow = square(slow);
                fast = square(fast);
                fast = square(fast);
                if(slow == fast)
                    return false;
            }
            return true;
        }
        public int square(int n){
            int res = 0;
            while(n != 0){
                res += (n%10)*(n%10);
                n /= 10;
            }
            return res;
        }
    }

    python3:set()集合法

    class Solution:
        def isHappy(self, n: int) -> bool:
            process = set()
            while n != 1:
                n = sum([int(x)**2 for x in str(n)])
                if n in process:
                    return False
                else:
                    process.add(n)
            return True

    python3:快慢指针法

    class Solution:
        def isHappy(self, n: int) -> bool:
            slow = n
            fast = self.square(n)
            while fast != 1:
                slow = self.square(slow)
                fast = self.square(fast)
                fast = self.square(fast)
                if slow == fast:
                    return False
            return True
        def square(self, n):
            res = 0
            while n:
                res += (n % 10)**2
                n //= 10
            return res
  • 相关阅读:
    [BZOJ1006]神奇的国度
    配置ubuntu18.04
    数据库的基本操作
    关于排序的算法——桶排序
    关于TCP/IP协议的记录
    laravel学习历程
    装箱问题
    01背包
    数字三角形
    统计单词的个数
  • 原文地址:https://www.cnblogs.com/yawenw/p/12623969.html
Copyright © 2020-2023  润新知