
数据结构与算法
文章平均质量分 80
YF_Li123
生活需要奔跑
展开
-
数据结构与算法(C++)——二叉树的遍历
二叉树的遍历 二叉树是一种重要的数据结构。遍历方式有前序遍历、中序遍历、后续遍历以及层次遍历。对于前序、中序和后续遍历,采用递归的思想代码实现起来简单且容易理解,非递归实现需要用到辅助栈。层次遍历需要用到辅助队列来实现。 一、前序遍历 前序遍历是按照:根结点-左结点-有结点 顺序访问。 递归代码实现: /*二叉树前序遍历递归实现*/ void preOrder(BinaryTre原创 2017-04-21 10:31:25 · 1117 阅读 · 0 评论 -
什锦披萨(人人网笔试)
题目描述: 小M想要宴请n个客人,她为他们准备了n个不同口味的披萨,分别盛装在n个大盘子中。但是由于她不知道每位客人喜欢什么口味,所以她希望每位客人都能品尝到这n种不同口味的披萨。于是她将每个披萨都均分成了n片,现在她想把这些分开后的披萨重组成n个包含n种不同口味的披萨。为此她取来了一个空的小盘子,小盘子只能容纳一片披萨。小M可以进行如下操作: 1. 将某个大盘子上的一片披萨放置到另一原创 2017-10-15 14:53:27 · 1021 阅读 · 0 评论 -
美团点评——改试卷
题目描述: 在上小学的时候,我们经常碰到这样的事情:考试完后老师懒得改试卷,于是让我们同桌互换试卷后为对方批改。但是后来老师发现这样做容易出现作弊,于是他想了一个新办法。老师将同学分成了n组,其中编号为i的组中有Si个人,然后老师按某种顺序依次访问这些组。 对于他访问的第一个组,他会将这组内的所有试卷都收走,放置在桌上,对于他后续访问的每一个组,首先他会从桌上的试卷最上方拿出该组对应人数数量的原创 2017-09-03 23:10:19 · 743 阅读 · 0 评论 -
美团点评——K的倍数
题目描述: 序列中任意个连续的元素组成的子序列称为该序列的子串。 现在给你一个序列P和一个整数K,询问元素和是K的倍数的子串的足底啊长度。 比如序列[1,2,3,4,5],给定的整数为5,其中满足条件的子串为{5}、{2,3}、{1,2,3,4}、{1,2,3,4,5,},那么答案就为5,因为最长的子串为{1,2,3,4,5};如果满足条件的子串不存在,就输出0. 输入: 第一含一个整数原创 2017-09-03 22:45:47 · 724 阅读 · 0 评论 -
给定一个递增有序数组,要求构建一棵具有最小高度的二叉查找树
给定一个递增有序数组,要求构建一棵具有最小高度的二叉查找树 题意:给定一个有序整数数组,元素各不相同且按照升序排列,让编写一个算法,创建一个高度最小的二叉查找树 二叉查找树定义:对于任意一个结点,左边的结点均小于它,右边的结点均大于它 思路:要创建一个高度最小的树,就必须让左右子结点的数量越接近越好,也就是说,要让中间值成为根节点,这样,左边的一半是左子树,右边的一半是原创 2017-08-21 18:45:58 · 1029 阅读 · 0 评论 -
八皇后问题
回溯法求解八皇后问题 n皇后问题:n皇后问题是指在一个n*n的国际象棋棋盘上放置n个皇后,使得这n个皇后两两不在同一行,同一列,同一条对角线上,求合法的方案数。如下图是N=5的情况,其中图(a)是一个合法的方案,而图(b)由于有两个皇后在同一条对角线上,因此不是合法的方案。 (a)原创 2017-08-03 16:43:24 · 525 阅读 · 0 评论 -
蓄水池抽样问题
蓄水池抽样问题 编程珠玑中有这么一个题目: How could you select one of n objects at random, where you see the objects sequentially but you do not know the value of n beforehand? For concreteness, how would yo原创 2017-08-02 11:36:32 · 605 阅读 · 0 评论 -
Hash(散列表)算法实现原理
散列表 散列表,又叫做“哈希表”,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。 散列表是依据关键码值(key)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组就叫做散列表。 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为数组索引转载 2018-05-30 16:39:11 · 1611 阅读 · 0 评论 -
C++之红黑树(二)
转载自:http://www.cnblogs.com/skywang12345/p/3245399.html 红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。 红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。 除了具备该特性之外,红黑树还包括许多额外转载 2017-07-12 20:26:37 · 374 阅读 · 0 评论 -
C++之红黑树(一)
转载自:http://www.cnblogs.com/skywang12345/p/3245399.html R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性: (1)每个节点或者是黑色,或者是红色。转载 2017-07-12 20:19:18 · 591 阅读 · 0 评论 -
收集金币(人人网笔试)
题目描述: 小M来到了一个迷宫中,这个迷宫可以用一个N*M的矩阵表示。在这个迷宫的某些位置中存在金币。一开始小M在迷宫的入口:矩阵的左上角,位置(1,1)处;迷宫的出口位于矩阵的右下角,位置(N,M)处。每一次小M可以选择向下或者向右走到一个相邻的格子,但是不能跨出迷宫外。现在小M想收集完迷宫中的所有金币并最后到达迷宫的出口,请你帮她规划一条最短的路径。 输入 第原创 2017-10-15 15:04:12 · 1870 阅读 · 0 评论