9. 回文数
class Solution {// 定义一个判断整数 x 是否为回文数的函数public boolean isPalindrome(int x) {// 将整数 x 转换为字符串String xStr = String.valueOf(x);// 创建一个 StringBuilder 对象,用于反转字符串StringBuilder sb = new StringBuilder();// 将字符串 xStr 添加到 StringBuilder 中sb.append(xStr);// 比较原字符串和反转后的字符串是否相等// 如果相等,则说明 x 是回文数,返回 true;否则返回 falsereturn xStr.equals(sb.reverse().toString());}}
66. 加一
class Solution {// [1,2,3] -> [1,2,4] [1,2,9] -> [1,3,0] [9, 9, 9] -> [1, 0, 0, 0]// 定义一个方法来实现给定数字数组加一的功能public int[] plusOne(int[] digits) {// 从末尾开始进行循环for (int i = digits.length - 1; i >=0; i--) {// 对当前位加1,并对10取模得到新的位值digits[i] = (digits[i] + 1) % 10;// 如果当前位加1后不为0,说明没有进位,可以直接返回结果if (digits[i] != 0) {// 返回更新后的数组return digits;}}// 如果循环结束,说明所有位都进位了(如从 999 变成 1000)// 创建一个新的数组,长度比原数组大1digits = new int[digits.length + 1];// 将新数组的第一个位置设为1,其余位默认是0digits[0] = 1;// 返回新的数组return digits;}
}
172. 阶乘后的零
class Solution {public int trailingZeroes(int n) {// 用于统计末尾 0 的个数int ans = 0;// 当 n 不为 0 时进行循环while (n!= 0) {// n 除以 5,相当于统计 n 中有多少个 5 的因子n /= 5;// 将每次得到的 n 累加到 ans 中,因为每次 n/5 得到的结果都是 n 中 5 的因子个数的一部分ans += n;}// 返回末尾 0 的个数return ans;}
}
69. x 的平方根
class Solution {// 定义一个方法来计算 x 的整数平方根public int mySqrt(int x) {// 初始化左右边界, 左边界从 0 开始int left = 0;// 右边界设置为 xint right = x;// 用于存储最终答案,初始值为 -1int ans = -1;// 使用二分查找来找到平方根while (left <= right) {// 计算中间值int mid = (left + right) / 2;// 使用 long 类型防止溢出if ((long) mid * mid <= x) {// 如果 mid 的平方小于等于 x,更新左边界left = mid + 1;// 更新答案为当前 midans = mid;} else {// 如果 mid 的平方大于 x,更新右边界right = mid - 1;}}// 返回找到的最大的平方根return ans;}}
50. Pow(x, n)
class Solution {public double myPow(double x, int n) {long N = n;return N >= 0 ? helper(x, N) : 1.0 / helper(x, N);}public double helper(double x, long N) {if (N == 0) {return 1.0;}double y = helper(x, N / 2);return N % 2 == 0 ? y * y : y * y * x;}}