Math

Palindrome Number (LeetCode 9)

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0) return false;
        int rev = 0, temp = x;
        while (temp != 0) {
            rev = rev * 10 + temp % 10;
            temp /= 10;
        }
        return rev == x;
    }
}
  • Dry run (x=121): rev=1→12→121, temp→12→1→0 → rev==x → true

Sqrt(x) (LeetCode 69)

class Solution {
    public int mySqrt(int x) {
        long left = 0, right = x, ans = 0;
        while (left <= right) {
            long mid = (left + right) / 2;
            if (mid * mid <= x) { ans = mid; left = mid + 1; }
            else right = mid - 1;
        }
        return (int) ans;
    }
}
  • Dry run (x=8): mid=4→too big; mid=1→ans=1; mid=2→ans=2; mid=3→too big; stop → 2