花了三天时间刷完了牛客OJ上剑指offer对应的66道算法题,感觉有一半都是做过的原题,还有一些是十分经典的算法题。因为好多算法题的思路在以前LeetCode博客上都详细讲过,剑指offer对应的博客就很简略,基本上直接上代码了。三天来把一些自认为很熟悉的快排和归并又重新码了一遍,感觉还是很难一把bugfree写对。递归和动态规划基本上写是没什么问题,暴力的递归还是很熟练的,但精巧的DP有时候就是想不到。分析欣赏时空复杂度的折中妥协以及各种tricks,不禁感叹:数据结构算法之美真的令人陶醉!!!
这里记下几道十分经典的算法题,都是一些既基础又较难的数据结构和算法,以后经常刷刷!
1.数据流中的中位数 优先队列
2.二叉树的下一个结点 树的递归
3.表示数值的字符串 字符串
4.正则表达式匹配 字符串
5.把字符串转换成整数 字符串
6.数组中只出现一次的数字 位运算
7.平衡二叉树 树的递归
8.数字在排序数组中出现的次数 二分
9.数组中的逆序对 归并
10.最小的K个数 快排
11.二叉搜索树的后序遍历序列 树的递归
12.栈的压入、弹出序列 栈
13.连续子数组的最大和 DP
14.重建二叉树 树的递归遍历
15.孩子们的游戏(圆圈中最后剩下的数) 循环链表
16.树的子结构 树的递归
17.整数中1出现的次数(从1到n整数中1出现的次数) 数学