前端该如何准备数据结构和算法?

2019-08-20
阅读 10 分钟
14.4k
实际上,当你了解了“数据结构”和“算法”存在的真正意义,以及一些实际的应用场景,对它有了一个整体的认知之后,你可能会对它产生强烈的兴趣。当然,它带将带给你的收益也是相当可观的。

《剑指offer》分解让复杂问题更简单

2019-02-24
阅读 3 分钟
1.3k
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用)

【剑指offer】让抽象问题具体化

2019-02-17
阅读 3 分钟
1.6k
1.包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值. 2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈. 4.数据栈出栈...

【剑指offer】10.程序的完整性

2019-01-22
阅读 1 分钟
1.6k
题目1 数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路 这道题逻辑上很简单,但很容易出错。 关键是要考虑全面,考虑到所有情况。 exponent 是正,负,0的情况 base为0的情况。 代码 {代码...} 题目2 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函...

【剑指offer】8.斐波那契数列

2019-01-19
阅读 2 分钟
1.7k
题目 题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 基本思路 这道题在剑指offer中实际是当作递归的反例来说的。 递归的本质是吧一个问题分解成两个或者多个小问题,如果多个小问题存在互相重叠的情况,那么就存在重复计算。 f(n) = f(n-1) + f(n-2) 这...

【剑指offer】7.旋转数组的最小数字

2019-01-17
阅读 2 分钟
3.3k
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

【剑指offer】2.替换空格

2019-01-07
阅读 1 分钟
2.9k
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

【剑指offer】1.二维数组查找

2019-01-07
阅读 2 分钟
2.1k
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。