Algorithm
题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
Example
输入123->321
输入-123->-321
输入120->21
题目解答
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
 | import java.util.*;
public class Solution1 {
    public int[] reverseNumber(int num) {
        int res = 0;
        while(num != 0) {
            int pod = num % 10;
            if(res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && pod > 7)) {
                return 0;
            }
            if(res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && pod < -8)) {
                return 0;
            }
            res = res * 10 + pod;
            num = num / 10;
        }
        return res;
    }
}
 | 
 
此题主要考察对栈的使用,如果不使用其它辅助类,则要考虑Int的整数溢出问题。时间复杂度O(log(n)),空间复杂度为O(1)
Review
Speed-up-maven-build 本文主要讲解了作者是如何加速多项目工程不同开发语言的maven构建的。主要包括以下几个尝试:
跳过编译不需要的模块
如果在项目中构建时,修改了Java代码,则可以跳过对js的编译,主要使用-pl参数
| 1
 | mvn clean install -DskipTests -pl '!m7,!m8,!m18'
 | 
 
如果可能,开启并行构建
当代的计算机都是多核CPU,如果项目允许,可以开启Maven的并行构建来加速构建,主要使用-T 1C参数
| 1
 | mvn -T 1C clean install -nsu -DskipTests -pl '!m7,!m8,!m18,!m11,!m24'
 | 
 
只对新的修改进行构建
可以指定进行构建的文件来加速构建,主要使用-pl参数
| 1
 | mvn clean install -DskipTests -nsu -pl 'm7' -amd -T 1C
 | 
 
只进行编译
如果本地开发不需要进行打包安装操作,则可以只执行Compile命令,去除不必要的执行步骤
| 1
 | mvn clean -nsu compiler:compile compiler:testCompiler -T 1C
 | 
 
对大项目进行拆分
拆分后就可以进行指定工程的编译了
Tip
使用wd与fzf实现对文件的快速移动与复制
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | #copy file to target fuzzy
#c file1
c() {
    cp -v "$1" "$(awk -F ":" '{print $2}' ~/.warprc | fzf | sed "s|~|$HOME|")"
}
#mv file to target fuzzy
#vv file2
vv() {
    mv -v "$1" "$(awk -F ":" '{print $2}' ~/.warprc | fzf | sed "s|~|$HOME|")"
}
 | 
 
Share
今天分享一篇JAVA基础的文章,讲述了开发中对Map进行合并的几种方式。由于JAVA8的加持,操作方式更加多样,如Map.merge(),Stream.concat(),Stream.of(),以及使用第三方的StreamEx来实现。Java-merge-maps