算法与数据结构
咖啡不加盐
目标全栈工程师
展开
-
数据结构与算法(一)概念梳理篇
程序 = 数据结构 + 算法,至于我们平时用的语言,无论是C、C++、JAVA、Python、Golang等等,都肯定会用到各式各样的算法和数据结构,数组,链表,排序,搜索等等,可以说数据结构和算法就是程序的灵魂,同样的,也是程序员基本素养最直观的体现,只有拥有扎实的数据结构和算法知识,才能够成为一名合格的程序员。 写这个系列是因为觉得无论学哪门语言,数据结构和算法总是常伴左右,最近深深感觉原创 2016-04-22 21:38:59 · 8300 阅读 · 0 评论 -
LeetCode奇幻漂流(一)Two Sum
从大一开始就接触ACM,到入职后做OJ题,在提交答案后AC以后的成就感,确实是无与伦比得快乐。貌似又扯远了,最近刚刚接触到leetcode(据说是各大互联网公司面试考基础的参考题目),因此无论你之前是多么熟悉或者精通一门语言,如果长时间不用,那么必将生疏,而且那种生疏比起什么都不会更为可怕,所以说学习一门编程语言最好的办法就使用它,而leetcode上的题目可以帮我实现这一点。好了,话不多说,先看这原创 2016-04-22 22:49:51 · 7311 阅读 · 0 评论 -
数据结构与算法(二)合并两个有序链表
本系列的第一节概括性地简单介绍了一下数据结构和算法的概念,说实话有点虚,因为谁都知道链表和数组是什么,也都能说出散列和二叉树,但真正有难度的是,在实际开发中如何去用这些数据结构,根据不同的开发需求选择不同的数据结构和算法,才是真正需要并且很难掌握的。以后的章节中,我都会通过一道实际编程题目或者一个场景,针对一种数据结构或者算法来解决问题,只有将数据结构和算法用来解决实际问题,才有意义,这一节我们要解原创 2016-09-23 23:40:50 · 13415 阅读 · 0 评论 -
数据结构与算法(三)两个数组实现MIN栈问题
上一节介绍了合并两个有序链表的操作,带大家简单的熟悉了链表这一数据结构以及通过递归来实现链表的合并,这一节为大家带来一道求栈中最小元素的问题,先看题目要求: 题目:定义栈的数据结构,请在该栈中实现一个能够得到栈中最小元素的MIN函数。在该栈中,调用MIN、PUSH、POP的时间复杂度均是O(1)。 根据题目可以看出,本次我们涉及的数据结构是栈(Stack),先看一下栈的介绍:栈又名堆栈,它是一种原创 2016-10-07 21:31:50 · 8052 阅读 · 0 评论