算法刷题常见错误
1.返回数组下标
return new int[] {i,j}
并且返回时必须加上默认返回或抛异常:
throw new RuntimeException("No solution");
2.回文数判断
class Solution {public boolean isPalindrome(int x) {if(x < 0){return false;}//cur存储倒序后的数字int cur = 0;//复制一份num,不在原数上修改int num = x;while(num!=0){
//循环提取个十百位的数字,判断反过来和原来是否一样cur = cur * 10 + num % 10;//提取后去掉最后一位数字num = num / 10;}//返他们比较的结果,如果相等返回true,不相等返回falsereturn cur == x;}
}
3.最长公共前缀
class Solution {public String longestCommonPrefix(String[] strs) {// 如果输入的字符串数组为 null 或者长度为 0,直接返回空字符串if (strs == null || strs.length == 0){return "";}// 遍历第一个字符串的每个字符,i 表示字符的索引.strs[0]数组中的第一个字符串。for (int i = 0; i < strs[0].length(); i++) {// 获取第一个字符串中第 i 个字符char c = strs[0].charAt(i);// 遍历其余,j 表示字符串的索引for (int j = 1; j < strs.length; j++) {// 如果当前字符串长度小于 i 或者第 i 个字符与第一个字符串的第 i 个字符不同if (i >= strs[j].length() || strs[j].charAt(i) != c)// 返回第一个字符串从 0 到 i(不包括 i)的子字符串作为最长公共前缀return strs[0].substring(0, i);}}// 如果所有字符串完全相同,返回第一个字符串作为最长公共前缀return strs[0];}}