ARTS是什么? Algorithm:每周至少做一个LeetCode的算法题 Review:阅读并点评至少一篇英文技术文章 Tip:学习至少一个技术技巧,总结和归纳日常工作中遇到的知识点 Share:分享一篇有观点和思考的技术文章
Algorithm
完成leetcode算法第476题。
使用Java API和StringBuilder完成暴力解法。
官方推荐位运算完成
/**
* 对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。
*
* 例如,整数 5 的二进制表示是 "101" ,取反后得到 "010" ,再转回十进制表示得到补数 2 。
* 给你一个整数 num ,输出它的补数。
*
*
*
* 示例 1:
*
* 输入:num = 5
* 输出:2
* 解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。
* 示例 2:
*
* 输入:num = 1
* 输出:0
* 解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。
*
*
* 提示:
*
* 1 <= num < 231
*/
public class FindComplement476 {
public static void main(String[] args) {
FindComplement476 example = new FindComplement476();
System.out.println(example.findComplement(5));
System.out.println(example.findComplement(1));
}
public int findComplement(int num) {
String hexString = Integer.toBinaryString(num);
StringBuilder res = new StringBuilder();
for (int i = 0; i < hexString.length(); i++) {
if ('0' == hexString.charAt(i)) {
res.append("1");
} else {
res.append("0");
}
}
return Integer.valueOf(res.toString(), 2);
}
}
Review
How to merge all your history
一个小技巧,如果有多个merge提交可以使用rebase,让你的提交日志变得干净一点
Tip
- crash-safe的恢复流程:InnoDB如果判断到一个数据页可能在崩溃恢复的时候丢失更新,就会把它读到内存,然后让redo log更新内容内容。更新完成后,内存页变成脏页,等待flush。
- redo log是循环写,写满了会覆盖之前的内容,起不到归档作用而且binlog在其他地方会用到,例如主从复制,异构系统的数据更新(生态);binlog没有check point机制,没有能力回复数据页,所以至少就目前来说,还做不到只使用redo log或binlog去同时完成归档和crash-safe的功能
Share
01|前世今生:你不得不了解的Go的历史和现状
最近买了极客时间的go语言课程,看到这篇鸟瞰式文章突然间想到Java的鸟瞰图应该是怎么样的好像自己从来没总结过,这让我有了兴趣去找一下Java的历史和现状,下一篇自己的文章主题决定是这个了。Finish
预计完成时间:2021.10.11 ~ 2021.10.17
实际完成时间:2021.10.18,周末打游戏打忘了