Algorithm
- 题目
- 回文数。给你一个整数
x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
- 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 难度,简单
- 题解
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
List<Integer> xarr = new ArrayList<Integer>();
int xtemp = x;
while(xtemp > 0){
xarr.add(xtemp % 10);
xtemp = xtemp / 10;
}
int xarrSize = xarr.size();
boolean isHui = true;
int j = xarrSize - 1;
for(int i = 0; i < xarrSize/2; i++){
isHui = isHui && (xarr.get(i) == xarr.get(j));
j--;
}
return isHui;
}
}
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
if (x != 0 && x % 10 == 0) {
return false;
}
int xtemp = 0;
while (x > xtemp) {
xtemp = xtemp * 10 + x % 10;
x /= 10;
}
return x == xtemp || x == xtemp / 10;
}
}
Review
- 文章:How to Do Great Work
- 简介:本文讲述了如何做出伟大的工作,是很实用的工作指南
- 点评:本文很长,英语能力有限,暂读一小部分。
- 如何找到要做的工作?有三个特点
- 对这件事有天赋
- 对这件事有兴趣
- 这件事有取得杰出成就的空间
- 养成自己发起并推动项目的习惯
- 这是我感触最深的,近期刚亲自发起并完成一个小项目。成就感很强。
- 四个步骤去的杰出成就:
- 选择一个领域
- 学习足够多的知识到达领域前沿
- 注意到领域的缺口
- 探索其中有前景的缺口
Technique/Tips
- 时间复杂度的计算
- 时间复杂度是方便开发者估算程序的运行时间
- 程序的运行时间通过估计操作单元的数量,代表程序消耗的时间
- 大O表示法:是一种特殊的表示法,可以比较操作数,指出的算法的增速。
- 表示方法:
O(n),n是操作数
- 大O表示法指的是最糟糕情况下的运行时间
- 常见的大O运行时间:
O(log n),对数时间,常见算法:二分查找
O(n),线性时间,常见算法:简单查找
O(n * log n),常见算法:快速排序
O(n ^ 2),选择排序
O(n!),尽量避免阶乘
Share
- All in one or All in boom
- 最近搞了个小主机玩,没有显卡,低功耗芯片。跟着网上的教程搭建了一些服务,勉强算作HomeLab。最近AIGC甚嚣尘上,等手头宽裕了,定要搞个显卡跑跑大模型。
- 搭建小主机服务的时候,网上总能看到两种论调,All in one 和 All in boom。一方支持所有服务放在一个主机中,方便管理、降低功耗、节省电量;另一方支持分布式微服务,每个主机只干一个事,各做各的事情,降低耦合、增加健壮性。
- 各有各的道理,我选择了All in one。因为这个小主机就是我的玩具,boom了也没什么问题。另外我不相信All in boom,boom总是有原因的,总是能解决的。可能是我年轻,没踩过坑。不过我这人就是倔,不相信有自己解决不了的问题。
- 我的All in one方案是使用 esxi 虚拟化,虚机有openwrt、黑群晖、win11。openwrt只作为旁路由,防止软路由作为主路由时网络爆炸。硬件直通还没做,芯片太新,驱动不好打。
- 总之,有钱谁玩All in boom,这不没钱嘛。没钱又不想当垃圾佬,活该我未来踩坑。