最近有个朋友问我,为何会选择写数据结构与算法相关的技术博客。在我看来这里面其实有两个问题: 一、为何要写博客;二、为何是算法。程序员
有段时间遭遇了一些很差的事情,压力很大,间歇性失眠,每天满脑子胡思乱想充满负能量,变得本身都不认识本身了。很长一段时间里我会把这些很差的事情都归结于外在因素,怨天尤人。最坏的时候身心俱疲,易怒,甚至所以还生过一场不小的病。经历过此次生病以后,我慢慢冷静下来,也意识到过分的抱怨和吐槽没有意义,它改变不了任何现状甚至会起到负做用...我开始进行调整,对本身过去二十几年的经历进行反思和总结,寻找本身的问题。人是个很奇怪的生物,不少简单的道理能脱口而出可是落到本身的身上却很难去实践,有些简单的道理可能等到明白的时候人生匆匆已过数十载。曾经我也看过不少文章有写关于人这一辈子最遗憾的事情,其中有两个出现频率比较高,分别是:后悔年轻时不够努力;后悔能作本身想作的事情。能够问本身几个问题,你是否还记得年少的本身曾经许下的心愿?有没有为此付出实践哪怕一天?你是否有一个地方一直很想去却没能去成?有没有一我的你一直很喜欢却历来没有表白过?再想象一下若干年后尘归尘,土归土,回顾过往有一辈子有没有一件事只要一想起就会发自心里的欢喜,有没有一件事能满脸自豪的讲给你子孙后代听。正是这样不断的灵魂拷问让我第一次比较全面的认识到了本身。原来终究我也只是个凡人,纵使骨子里再年少轻狂也改变不了平庸的事实。我能接受这样的本身吗?这样的问题也曾问过本身无数次,发现每一次的结果都同样,原来充盈于心里深处的情感早已给出了选择!也算幸运的是,在乎识到本身的平庸以后,我开始认真的思考本身到底想要什么以及要走怎样的路。写博客是我一直想作也一直没能作的事情,毕业工做以来一直很想输出分享一些比较有用的内容。也一直没有付出实践,究其缘由基本都是被工做和生活的杂事安排得满满当当,没时间去整理和输出。(容我给本身的懒惰找个台阶...)面试
第一次接触到算法是在大学时期,刚开始学习数据结构与算法课程的时候,看到一道很简单的算法题,多个数求和。依然记得第一次理解求和思想并学会用代码写实现标准答案时那种发自心里快乐!那个时候就对算法有了一些兴趣。看看这个订阅号的logo你会发现其实它是一个符号“Σ”,Σ(读sigma)符号正是求和的意思,而这个logo也正是我根据本身算法启蒙的经历设计的0.0(见下图)算法
从近两年国内诸多公司的战略调整来看,整个国内互联网的环境都在朝着一个比较好的方向发展,简单来讲就是职业化和精英化。愈来愈多的公司开始更加注重基础,注重专业素质。而随着时代进步和发展,精英化也必然是大势所趋。工做以来,有一个深入的体会就是不少从事互联网行业技术相关的开发人员在计算机编程基础知识方面都极度欠缺,最明显的表现就在于数据结构与算法相关。不少工做多年的开发工程师甚至高级开发工程师都不具有基础的算法知识(个人从业经验,仅表明我的)。这其实是一件细思恐极的事情。这会影响到什么?最典型是没有算法思惟和意识,没有对项目精益求精的追求。且不谈在复杂项目核心业务的算法设计,亦不谈性能效率优化层面,最简单的表如今当下精英化的趋势下可能连工做面试都会受到限制。然而这些重要性在大学校园里几乎不可能有人会提醒或者引导,工做初期的我也曾所以踩过很多坑。编程
理性思考过国内程序员广泛缺少算法素养的根本缘由。对于跨行业跨专业进入软件开发行业的人来讲算法入门的难度相对比较大,由于没有接受过系统教育,这不难理解。可是对于计算机专业科班出身的人而言即便受过系统性训练也只是比较基础,远达不到工做的标准。(也都源自个人从业经验,仅表明我的)bash
也正是基于以上这些,我决定了开算法类博客。但愿经过本身的分享能起到改变和促进做用,帮助到有须要的人,固然在这个过程本身也能巩固和学习不少知识。微信
其实在以前的有一篇博客中也有说过,这里忍不住再分享一下:数据结构
不知不觉,从开始发算法博客到现在已通过了半月,在这个过程当中其实也遇到过不少困难,也一度想过要放
弃,深入体会到没有任何一件事情是能够简简单单敷衍过去的,特别能体会那些工做之余还能十年如一日坚
持技术文章创做的做者们的不容易。不过尽管辛苦也有不少收获,好比精益求精,更追求更完美,又好比收
获了不少技术之外的知识,认识了更多的朋友,视野也更加开阔。犹记得第一次投稿成功,第一次文章被大
的专栏收录,第一次有人点赞,第一次有粉丝关注,甚至第一次某平台粉丝破百的时候心里的喜悦... 未
来,但愿本身能把算法博客当成爱好一直写下去,也但愿能这些文章能给有须要的朋友带来实际的帮助。在
后续博文推送过程当中,不排除也有些疏漏或者思惟理解上的误区,欢迎交流或批评指正。
复制代码
再回过头看以前的总结基本感觉仍是同样的。性能
主要划分为基础大纲和进阶大纲。目前一共只外发了10篇左右算法博客,内容相对比较少,等初阶基础类型基本覆盖齐全,相对系统的时候我会统一整理一篇基础大纲,大概一个月内完成。基础大纲以后才会有进阶性的算法题博文推送和进阶性大纲。穿插在基础大纲和进阶大纲内也会有一些知名互联网公司的比较经典的算法面试题,除了算法相关也会插入一些数据结构相关的文章。学习
全部题型都是通过精心挑选的。基础大岗都是比较典型的能表明某一种算法思想的类型,进阶大纲会对这些算法思想进一步实践强化理解。算法相关的题解,附算法思路说明,伪代码说明以及实际编码。算法效率都是100%级别(leetcode评测击败100%),基本上保证每一题都是最优解,每一个题解都附有测评截图。也有一些题目为了更好的展现不一样的算法思想会采起一题多解的形式。优化
彩蛋的设计是源算法经验中积累的一些有益于提高算法效率的小技巧,通常会以累计的形式,累计足够4~5个彩蛋发一篇关于彩蛋的说明。有些彩蛋涉及到计算机编译原理相关的知识因为主题和篇幅关系暂时不会太过深刻研究分析,可是会有实际数听说明的demo。
一直以来也但愿以比较简单愉快的形式分享知识,然而知识的分享本就枯燥无味再加本人愚钝,目前还没找到比较好的方式,后续会努力作一些改进和尝试。若是你有好的建议,也欢迎交流~
也不排除可能博文中可能出现一些错误,一经发现欢迎批评指正,解题思路也会有千差万别,若是有比博文中更好精彩思路方法也欢迎一块儿交流。能够加我的微信Aeiric,也能够关注订阅号Aeiric(你没看错,是同样的名字)进行留言。或者发邮件到xujian2065@163.com