hash-code

简单实现了 hash 容器

分别采用拉链法和开放寻址法

阅读更多

design-pattern

常见的设计模式的简单总结和简单实现,为以后做个参考

阅读更多

kmp

算法书上使用的是 有限状态机 来描述的 kmp 算法。

之前学习的是通过前后缀匹配的方式来做的 kmp 算法。

现在记录一下。

参考:阮一峰 blog

阅读更多

简单图算法

图算法

简单实现了无向图、无向加权图、有向图、有向加权图的几种算法,包括:

  • 遍历
    • dfs
    • bfs
  • 应用
    • 环图
    • 拓扑排序
    • 双色问题
    • 最小生成树
      • prim
      • krusal
    • 最短路径
      • Dijkstra
      • 拓扑排序遍历
      • bellemanFord
阅读更多

sort

排序算法

简单实现了一下几种常见的内排序算法

  • 希尔排序
  • 归并排序
  • 快速排序
  • 堆排序
  • 基数排序
  • 桶排序
排序算法 平均执行效率 稳定性 备注
插入排序 o(n^2) 稳定 我觉得这个稳定性取决于实现的时候的停止条件
冒泡排序 o(n^2) 稳定
选择排序 o(n^2) 非稳定 因为选择最小 or 最大元素交换的时候回改变原来的顺序
希尔排序 o(nlogn) 稳定 希尔排序是一个根据步长的来的插入排序
快排 o(nlogn) 非稳定 分治的方法,递归的处理子数组,每次寻找到一个数字的位置
堆排序 o(nlogn) 非稳定 用大顶堆 or 小顶堆实现,调整堆的有序性需要 logn 的时间
归并排序 o(nlogn) 稳定 使用分治,每次合并两个已经有序的数组
阅读更多

leetcode

leetcode 例题

记录下 leetcode 值得记录的例题

阅读更多

春招java后端实习岗笔试总结

春招实习生投递小结

春招实习生一共投了4家企业,包括字节、美团、阿里和快手,因为两边都相对较多,因此将笔试和面试分开吧

  • 字节倒在了二面
  • 美团刚刚完成了二面
  • 阿里完成了三面(不过我觉得我跟他们需求的方向相对较远,因此希望渺茫)
  • 快手,可能是投递得比较晚,至今(4月24日无任何消息)

因为觉得大部分希望渺茫,所以特地记录下春招的笔试和面试情况,希望有所帮助。

有几家是在牛客网提供的平台上笔试的,不过笔试的方式都是大同小异,保证入口class是Main即可,可以先去牛客网上试试

不保证自己的贴出的代码能够全部AC,仅供参考

阅读更多

java多线程(一)

一直以来,对于java的多线程变成都不是十分了解,趁着项目需要一个多线程的爬虫学习了一下,主要是一些基础的相关知识,以上。

阅读更多

签到二维码生成

做这个东西的灵感来自于[lufer blog]('http://coder.lufer.cc/2018/06/11/%E7%8C%AB%E9%80%94%E6%A0%A1%E5%9B%AD%E7%AD%BE%E5%88%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81%E4%BC%AA%E9%80%A0/')以及室友的微信小程序拆包帮助

做这个事儿的原因

嘛,最近老师准备派出去出差去学习 2 周,但是人出去了,课还是要上的,尤其是杜博士的课又在最近开了。杜博士还是有点怕的,而好巧不巧杜博士又喜欢用微信小程序的猫途校园来进行二维码签到,所以才有了做这个东西的动力和原因。

阅读更多