数据结构
wulei_rita
知识搬运工
展开
-
剑指offer(1)二维数组中的查找
剑指offer(1)二维数组中的查找题目分析代码题目在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析本题中数组从左到右递增,从上到下递增的数组,如果我们单纯使用两层遍历(时间复杂度为n2n^{2}n2显然是浪费了这一条件。有一种方式可以使用一...原创 2019-01-28 15:36:23 · 155 阅读 · 0 评论 -
剑指offer(2)替换空格
剑指offer(2)替换空格题目分析代码题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析一种高效的方式实现这个函数:先计算出一共有多少个空格,空格数*2就是替换后的字符串比原来的字符串增加的长度,从后向前,遇到一个空格就替换。例如:We Are Happy中一共有2个空...原创 2019-01-28 15:37:33 · 130 阅读 · 0 评论 -
剑指offer(3)从头到尾打印链表
剑指offer(3)从头到尾打印链表题目分析代码题目输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。分析拷贝出一个新的链表,需要在函数中开辟空间。代码/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* ...原创 2019-01-28 15:38:52 · 130 阅读 · 0 评论 -
剑指offer(4)重建二叉树
剑指offer(4)重建二叉树题目分析代码题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析通过前序遍历找到根节点,根据中序遍历找到左右子树,然后递归构建左右子树,再将左右子树和根节点结合。代码...原创 2019-01-28 15:40:06 · 108 阅读 · 0 评论 -
剑指offer(5)两个栈实现队列
剑指offer(5)两个栈实现队列题目分析代码题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析在入队列的时候将所有的元素都存放在stack1,再进入stack1。出队列的时候将所有的元素都放到stack2中,再从stack2中出。代码class Solution{public: void push(int node) { ...原创 2019-01-28 15:41:32 · 131 阅读 · 0 评论 -
二叉树的前中后序遍历,及广度遍历实现
二叉树的前中后序遍历,及广度遍历实现说明:代码使用codeblocks编译,C++实现,个人编写,如有错误,还望指正。#include <iostream>#include <stdlib.h>#include <stack>#include <queue>using namespace std;struct TreeNode{...原创 2019-01-23 10:59:36 · 236 阅读 · 0 评论