数据结构与算法试题80道

由于这些题,实在太火了。所以,应广大网友建议要求,在此把之前已整理公布的前80题,

现在,一次性分享出来。此也算是前80题第一次集体亮相。

此些题,已有上万人,看到或见识到,若私自据为己有,必定为有知之人识破,付出代价。

所以,作者声明:

本人July对以上所有任何内容和资料享有版权,转载请注明作者本人July出处。

向你的厚道致敬。谢谢。

1.把二元查找树转变成排序的双向链表

?题目:

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。 10

?/ \

?6?14

?/ \ / \

4?8 12 16

?转换成双向链表

4 6 8 10 12 14 16。

?首先我们定义的二元查找树 节点的数据结构如下:

?struct BSTreeNode int m_nValue; // value of node

?BSTreeNode *m_pLeft; // left child of node

?BSTreeNode *m_pRight; // right child of node

;

2.设计包含min函数的栈。

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O 1 。

3.求子数组的最大和

题目:

输入一个整形数组,数组里有正数也有负数。

数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

求所有子数组的和的最大 。要求时间复杂度为O n 。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,

因此输出为该子数组的和18。

4.在二元树中找出和为某一 的所有路径

题目:输入一个整数和一棵二元树。

从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。

打印出和与输入整数相等的所有路径。

例如 输入整数22和如下二元树

?10?

?/ \ 5?12 /?? \??

4 7

则打印出两条路径:10, 12和10, 5, 7。

二元树节点的数据结构定义为:

struct BinaryTreeNode // a node in the binary tree int m_nValue; // value of node

BinaryTreeNode *m_pLeft; // left child of node

BinaryTreeNode *m_pRight; // right child of node

;

5.查找最小的k个元素

题目:输入n个整数,输出其中最小的k个。

例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。

第6题

腾讯面试题:

给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数

要求下排每个数都是先前上排那十个数在下排出现的次数。

上排的十个数如下:

【0,1,2,3,4,5,6,7,8,9】

举一个例子,

数 : 0,1,2,3,4,5,6,7,8,9

分配: 6,2,1,0,0,0,1,0,0,0

0在下排出现了6次,1在下排出现了2次,

2在下排出现了1次,3在下排出现了0次

以此类推..

第7题

微软亚院之编程判断俩个链表是否相交

给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。

为了简化问题,我们假设俩个链表均不带环。

问题扩展:

1.如果链表可能有环列?

2.如果需要求出俩个链表相交的第一个节点列?

第8题

此贴选一些 比较怪的题,,由于其中题目本身与算法关系不大,仅考考思维。特此并作一题。

1.有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,

这两个房间是 分割开的,从一间里不能看到另一间的情况。

现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。

有什么办法呢?

2.你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。

如果你只能将金条切割两次,你怎样分给这些工人?

3. 用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。

用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。

用一种算法整理一个数组。你为什么选择这种方法?

用一种算法使通用字符串相匹配。

颠倒一个字符串。优化速度。优化空间。

颠倒一个句子中的词的顺序,比如将“我叫克丽丝”转换为“克丽丝叫我”,

实现速度最快,移动最少。

找到一个子字符串。优化速度。优化空间。

比较两个字符串,用O n 时间和恒量空间。

假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000 包括1000 之间。此外,除一个数字出现 两次外

输入一个数寻找丑数C语言,数据结构与算法试题80道.doc相关推荐

  1. c语言求同时被3和7,c语言输入一个数 判断该数能否同时被3和7整除 如果能整除 则输出yes...

    输入1个整数,判断该数是奇数还是偶数.(用C语言编程) #includevoidmain(){intn;printf("输入一个整数:");scanf("%d" ...

  2. 算法分析---寻找丑数

    什么是丑数: 一个数的因子只包含2,3,5的数称为丑数.数字1特别对待也看作是丑数,所以从1开始的10个丑数分别为1,2,3,4,5,6,8,9,10,12. 因子的概念: 整数m除以n,得到无余数的 ...

  3. 程序员面试题精选100题(37)-寻找丑数[算法]

    题目:我们把只包含因子 2. 3和 5的数称作丑数(Ugly Number).例如 6. 8都是丑数,但 14不是,因为它包含因子 7.习惯上我们把 1当做是第一个丑数.求按从小到大的顺序的第 150 ...

  4. (19) 转载: 寻找丑数

    题目:我们把只包含因子 2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第1500个丑数. 分析 ...

  5. 牛客网 2018校招真题 滴滴出行 寻找丑数

    Description 牛客网 2018校招真题 寻找丑数 Solving Ideas 参考<剑指offer>丑数 Time complexity : O(n)O(n)O(n) Space ...

  6. 第5关:C循环-寻找完数-------C语言程序设计技术(循环结构程序设计2)

    第5关:C循环-寻找完数-------C语言程序设计技术(循环结构程序设计2) #include<stdio.h>int main(void){ /*********Begin****** ...

  7. java编程用户输入两个数字_编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不...

    导航:网站首页 > 编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不 编写一个Java应用程序,要求从键盘输入 ...

  8. Go语言-数据结构与算法

    go语言之专业数据结构与算法 3.golang实现数组结构 code\ArrayList\ArrayList.go package ArrayListimport ("errors" ...

  9. 中南c语言作业答案,中南民族大学10套计算机C语言期末考试复习试题及答案.doc...

    中南民族大学10套计算机C语言期末考试复习试题及答案.doc 一.判断 共10题 (共计10分)第1题 ( 1.0分) 题号1488函数即可以嵌套定义,又可以嵌套调用.N第2题 ( 1.0分) 题号1 ...

最新文章

  1. 剑指offer:二位数组中的查找
  2. 服务器证书CA的相关操作
  3. 一个嵌入式硬件驱动模块通常应包括哪些函数?
  4. LESSON 9.4 集成算法的参数空间与网格优化
  5. JAVA:贪吃蛇源代码
  6. 今天的弹指一瞬间的飞鸽传书
  7. 【codevs1851】越狱,快速幂数学
  8. 2699元!魅族16s Pro现货售罄:将加紧备货
  9. 如何快速写一款小而美的“上滑无限加载的控件”?| 博文精选
  10. 路由器信息备份还原指南
  11. 微型计算机配置单怎么写,微型计算机的组成和配置.doc
  12. 爬取京东某商品评论并存入csv
  13. 雅虎微软交易局中局:巴茨开始绝望主妇式攻击
  14. 追光的人 团队团队展示
  15. There is no getter for property named ‘keyword‘ in ‘class cn.wolfcode.qo.Subentry‘] with root caus
  16. 视频教程-Scratch趣味编程课堂-L1-其他
  17. 选购新风机的关键知识点
  18. ubuntu18使用preseed文件定制ISO镜像实现自动化安装
  19. 【航拍中国】广东笔记
  20. 微信小程中wx.requert请求外部数据和.NET Core 发布服务支持https

热门文章

  1. MySql 5.7 重置root密码
  2. 动态规划(一)简单例子
  3. git bash退回上一个文件夹
  4. 【Linux开发】彻底释放Linux线程的资源
  5. (转)Engineering Productivity
  6. 若格式化都无效 如何清除”不可杀“病毒?
  7. 国办发明电〔2020〕27号:国务院办公厅关于2021年部分节假日安排的通知
  8. 7篇必读ACM MM 2019论文:图神经网络+多媒体
  9. SSH暴力破解IP大曝光
  10. Python3编程语言之enumerate() 函数使用示例