数据结构常用算法
在前几天,有幸被字节跳动基础架构部发起面试,看起来工作内容也挺对口,一面非常无压力就过了,二面栽在了一个很简单的DP上……本来还打算借助工作时候再自顶向下学算法,现在看起来还是先花时间学吧,不然下一个机会可能又失之交臂了… ...
在前几天,有幸被字节跳动基础架构部发起面试,看起来工作内容也挺对口,一面非常无压力就过了,二面栽在了一个很简单的DP上……本来还打算借助工作时候再自顶向下学算法,现在看起来还是先花时间学吧,不然下一个机会可能又失之交臂了… ...
如今2020年了,甚至都可以说2021年了,在行业一直推行“上云”的这一背景下,越来越多的企业服务开始从私有云转移到了公有云上。在企业纷纷上云提高自身效率的同时,我也一直在想有什么办法来提高个人的开发效率呢?写个代码一直都强调高内聚低耦合,我们的生产力工具和开发系统本来也就要进行解耦,以避免掉太多对终端设备的依赖,来应对突发状况下或者一些特殊的环境依赖需要。今天,无意中发现了一个新的东西——Code Server,即一个VS Code的网页端,也是一个开源软件,借助Code Server,终于有了一个完全托管于云上、无需再过多依赖本地终端的环境。 ...
足够熟悉KMP原理的就不用看了。本篇的代码比较渣 前言 KMP算法主要适用于在某个指定的文本串中寻找是否存在特定的模式串和其位置,相对暴力匹配效率高很多。 我们假定文本串长度为tL,模式串长度为pL,由于暴力匹配存在太多的重复工作,因此它的时间复杂度要大,平均时间复杂度为O(tL * pL / 2),最糟糕时的时间复杂度会达到O(tL * pL);相对而言,KMP的算法的时间复杂度就小很多,为O(tL + pL)。 ...
其实我本来不打算写这篇文章的,直到提交完代码后发现…在所有 Go 提交中击败了99.42%的用户…这就有点意思了,所以还是写一篇吧刚好总结一下。 前言 古人云,搬砖5分钟,修bug两小时。还真是。 ...
前言 都说没有最优的算法,只有最合适的算法。然而我在leetcode上提交排序代码时9/10通过,只剩最后一个一大串的排序(估摸着大概4万多个数吧),因为超出时间迟迟无法通过。 写到这里,感谢一下陈老哥,不仅在实习上帮助了很多,还解答了好多问题(不愧腾讯大佬)。本文在最开始时拿堆排去排n个数(说白了就是排了全部),而堆排其实并不适合这个场景,下边的表格也很明确得说明了这个问题,所以就慢的一批,感谢陈老哥的提醒。如果图整体排序速度不如快排来的实在(实质是平衡二叉树) ...
Golang的标准库中包含一个io包,其中有个MultiWriter方法。这个方法不论传入什么样的Writer甚至是os.File都能够正常接受,这让我有些好奇他是怎么实现的。本篇文章对此进行阐述 深挖过程 var file *os.File _, w, _ := os.Pipe() var writer io.Writer var wc io.WriteCloser iii := io.MultiWriter(file, w, writer, wc) 在如上这段代码中,MultiWriter同时接受了3种数据类型,分别是*os.File(第二个也是)、io.Writer、io.WriteCloser ...
写这篇文章是因为这两天在写一个运维小工具,自动备份数据并加密上传到对象存储用的,由于牵扯到备份,免不了需要压缩,在使用golang做数据压缩时出了点问题,本文针对这个问题做相关研究和探讨。 前言 不过其实说真的,这个备份过程其实可以完全不需要go来解决,仅仅依靠shell script我觉得就能解决备份和加密问题。但是很遗憾,最后的关头——上传操作,官方没有提供HTTP接口,所以想用CURL上传就不可能了,要使用SDK只能通过撸码解决。希望借此机会能再诞生出来一个比较好用的小工具吧,同时也再熟悉一下go,太久没写go了。 ...