摘要:面试的时候,面试官让设计一个栈,要求有Push、Pop和获取最大最小值的操作,并且所有的操作都能够在O(1)的时间复杂度完成。 当时真没啥思路,后来在网上查了一下,恍然大悟,只能恨自己见识短浅、思路不够开阔,特地写个总结来学习一下。 其实思路挺简单,只是没有接触过的话,一时反应不过来。我们将...
阅读全文
posted @ 2015-08-21 15:31
|
|
|
随笔分类 - 数据结构和算法
摘要:面试的时候,面试官让设计一个栈,要求有Push、Pop和获取最大最小值的操作,并且所有的操作都能够在O(1)的时间复杂度完成。 当时真没啥思路,后来在网上查了一下,恍然大悟,只能恨自己见识短浅、思路不够开阔,特地写个总结来学习一下。 其实思路挺简单,只是没有接触过的话,一时反应不过来。我们将...
阅读全文
posted @ 2015-08-21 15:31
摘要:问题描述:求一个整数的n次幂,对m取余。思路一:简单循环 1 int Pow(int num, int n, int m) 2 { 3 int res = 1; 4 5 while (n--) { 6 res *= num; 7 } 8 9 ...
阅读全文
posted @ 2015-08-03 18:59
摘要:问题定义:具体文字定义就不多说了,网上有很多,下面给出数学公式描述(有时候会有一些变种,不过都大同小异):f(0) = 1 , f(1) = 1, f(n) = f(n-1)+f(n-2) n>=21、递归求解解决斐波那契问题,大多数人第一反应就是递归,思路简单清晰,代码易实现,不多说了,直接看代码...
阅读全文
posted @ 2015-07-30 15:30
摘要:1、引言 双向链表原理和单链表差不多,就是操作相对繁琐一些,简单画了几个图,把思想弄清楚就好。2、正文 这里介绍一下插入和删除的原理,相信这两个操作搞清楚的话,其他操作也没什么问题。2.1插入节点:大致分为两种情况,第一种是向头结点或者尾节点插入节点,第二种则是在中间插入。 在头节点...
阅读全文
posted @ 2014-08-09 15:11
摘要:1、引言 工作一年了,感觉越来越懒散,把很多基础性的东西都慢慢遗忘了,最近想趁着还没忘完,回顾一下,整理了点笔记,分享一下。 如有错的地方,欢迎大家怒喷。2、学习 我们就从最简单的链表开始吧。 链表其实跟数组有点像,都是一串相同类型的元素的集合,最大的不同点在于:数组是一片连...
阅读全文
posted @ 2014-08-09 14:54
|
|