ARTS是什么? Algorithm:每周至少做一个LeetCode的算法题 Review:阅读并点评至少一篇英文技术文章 Tip:学习至少一个技术技巧,总结和归纳日常工作中遇到的知识点 Share:分享一篇有观点和思考的技术文章
Algorithm
完成leetcode算法第7题。
整数反转
/**
* 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
*
* 如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。
*
* 假设环境不允许存储 64 位整数(有符号或无符号)。
* 示例 1:
*
* 输入:x = 123
* 输出:321
* 示例 2:
*
* 输入:x = -123
* 输出:-321
* 示例 3:
*
* 输入:x = 120
* 输出:21
* 示例 4:
*
* 输入:x = 0
* 输出:0
* @author ouyb01
* @date 2021/11/29 20:27
*/
public class IntReverse7 {
public static void main(String[] args) {
IntReverse7 example = new IntReverse7();
System.out.println(example.reverse(123));
}
public int reverse(int x) {
int rev = 0;
while (x != 0) {
if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {
return 0;
}
int digit = x % 10;
x /= 10;
rev = rev * 10 + digit;
}
return rev;
}
}
Review
How to implement Facade Design Pattern using Java?
Tip
临时表使用场景
- join查询
- 不同 session 的临时表是可以重名的,如果有多个 session 同时执行 join 优化,不需要担心表名重复导致建表失败的问题
- 不需要担心数据删除问题
- 分库分表的跨库查询
- 在proxy的进程代码中实现排序
- 处理速度快,拿到分库的数据以后,直接在内存中参与计算
- 需要的开发工作量比较大。我们举例的这条语句还算是比较简单的,如果涉及到复杂的操作,比如 group by,甚至 join 这样的操作,对中间层的开发能力要求比较高
- 对 proxy 端的压力比较大,尤其是很容易出现内存不够用和 CPU 瓶颈的问题
- 把各个分库拿到的数据,汇总到一个 MySQL 实例的一个表中,然后在这个汇总实例上做逻辑操作
Share
别让自己“墙”了自己Finish
预计完成时间:2021.11.22 ~ 2021.11.28
实际完成时间:2021.11.29
- 在proxy的进程代码中实现排序