public boolean isPalindrome(int x) {
if (x<0) return false;
List<Integer> list = new ArrayList<>();
while (x!=0){
list.add(x%10);
x=x/10;
}
int end = list.size()-1;
for (int start=0;start<list.size()/2;start++){
if (list.get(start)!=list.get(end)){
return false;
}
end--;
}
return true;
}
結(jié)果
info
解答成功:
執(zhí)行耗時:6 ms,擊敗了56.12% 的Java用戶
內(nèi)存消耗:41.7 MB,擊敗了17.21% 的Java用戶
思路:
兩次遍歷瞻惋,能不能優(yōu)化厦滤?
遍歷的時候,能不能把數(shù)字反轉(zhuǎn)了歼狼?
優(yōu)化
public boolean isPalindrome(int x) {
if (x<0) return false;
int reverse = 0;
int c= x;
while (c!=0){
reverse = reverse*10 + c%10;
c=c/10;
}
return x==reverse;
}
結(jié)果
info
解答成功:
執(zhí)行耗時:5 ms,擊敗了98.06% 的Java用戶
內(nèi)存消耗:41.6 MB,擊敗了22.98% 的Java用戶