HJ50 四则运算
HJ54 表达式求 

nowcoder-exam-oj/HJ050FourArithmeticOperations.java at main · waylau/nowcoder-exam-oj (github.com)  

HJ108 求最小公倍数

用a和b相乘除以最大公约数:a*b/gcd(a,b)

最大公约数:gcd(a,b)

//求最大公约数(循环次数小)辗转相除法
public static int gcd(int a, int b) {
    int tmp;
    while ( b != 0)
    {
        tmp = a % b;
        a = b;
        b = tmp;
    }

    return a;
}

    //求最大公约数(递归)辗转相除法
//    public static int gcd(int a, int b){
//        if (b==0) return a;
//        else return gcd(b, a%b);
//    }
HJ6 质数因子

质数:除了1和本身,再没有其它因数。如:3只有1、3两个因数。

合数:除了1和本身,还有其它因数。如:4有1、2、4三个因数。

互质,若N个整数的最大公因数是1,则称这N个整数互质。1不是质数,但与任何正数互质。

质因子(或质因数):在数论里是指能整除给定正整数的质数。每个正整数都能够以唯一的方式表示成它的质因数的乘积。


有效的括号
LeetCode:1047. 删除字符串中的所有相邻重复项

本质相同,借助栈来暂存遍历的元素,然后遍历和栈顶的元素比较。


150. 逆波兰表达式求值

遍历的数字放入栈,遇到操作符就取出栈中的元素计算,把值放入栈。


队列

239. 滑动窗口最大值

单调队列

队列出口始终放最大值(即,队列是单调的),小的值都pop掉。


347.前 K 个高频元素

map key:元素   val:次数

小顶堆

推是一个完全二叉树。数组转到完全二叉树没有代价。所以,堆用数组来存储。

堆的父节点坐标:(i-1)/2

堆的左孩子节点坐标:i*2+1

堆的右孩子节点坐标:i*2+2

应用:优先级队列

堆排序:O(NlogN)

动态规划

LeetCode:300.最长递增子序列


LeetCode:1143.最长公共子序列

HJ75 公共子串计算