1.题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路:利用一个辅助栈来存放最小值 栈 3,4,2,5,1 辅助栈 …
标签:剑指offer
实现字符串的库函数
char* _strcpy(char* dest, const char* src) { assert(dest != NULL && src != NULL); if (dest == src) ret…
整数转化为字符串
自己写一个函数实现类似库函数itoa的功能,将整数转化为字符串。 整数转汉字,表示货币量。 1、代码: 1 char *IntToStr(int num, char str[]) 2 { 3 int i = 0, j =…
STL规范
标准库定义了顺序容器和关联容器,顺序容器内的元素按其位置存储和访问,关联容器内的元素按其键(key)排序。容器只定义了少量的操作,其他大量的操作是通过算法库实现,比如说排序和查找。算法库中的算法没有为每种容器类型设计…
广度优先遍历
从上向下打印二叉树的每个节点, 同一层的节点按照从左到右的顺序打印。 判断一棵树是否是完全二叉树。 将一棵完全二叉树层次遍历转化为一个链表。(不用队列) 1、思路: 可以使用双端队列deque容器,头负责打印,尾负责…
两个堆栈实现列队
如何用两个堆栈模拟实现一个队列? 如何用两个堆栈模拟实现一个队列? 如果这两个堆栈的容量分别是m和n(m>n),你的方法能保证的队列容量是多少? class Solution { //主要思…
回文链表
回文链表其实也是链表反转的变形;也可以用栈实现。 //对于一个链表,请设计一个时间复杂度为O(n), 额外空间复杂度为O(1)的算法,判断其是否为回文结构。 //给定一个链表的头指针A,请返回…
ArrayList底层原理解析
原文地址: https://jygod.github.io/2018/04/15/ArrayList%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/ 初始化 …
二叉树的遍历游走
前序,中序,后序遍历的非递归实现。 层次遍历,从上到下或从下到上,从左到右或从右到左,只输出叶子节点,只输出某一层等等。 1、代码: 1 void PreOrder(BinaryTreeNode* root) 2 { 3…
字符全组合
输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 实现一个算法打印出n对括号的有效组合。 1、思路: 假设我们想在长度为n的字符串中求m个字符的…
位运算
输入一个整数,输出该数二进制表示中1的个数。附加题:判断一个数是否是2的幂。 一个整数数组里除了两个数字以外,其他数字都出现两次。请找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)。 写一个函数,求两个整…
01-复杂度1 最大子列和问题(剑指offer和PAT)
01-复杂度1 最大子列和问题 (20分) 给定KK个整数组成的序列{ N1, N2, …, NK },“…