自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 使用两个栈来实现一个队列简单的push和pop

题目:给定一个栈的结构,用它来实现一个队列分析:栈结构已知。由于栈是LIFO,队列是FIFO,我们使用两个栈来实现一个队列,是队列的输入正常,输出就导入另外一个栈内进行输出。参考答案:class Queue{private:stack inputStack;stack outputStack;public:void enqueue(int);int dequ

2017-01-08 15:23:02 986

原创 设计一个带有push,pop和max的栈

题目:设计一个栈,带有push(),pop()和max()的功能分析:对于一个栈,本身就带有push和pop的功能,所以这道题目的重点是设计一个栈可以返回该栈中所有值的最大值。最简单的想法就是使用一个另外的栈,这个栈的功能用来保存最大的值,并且在元素入栈的时候进行比较,确定输入元素的最大值。参考答案:#include "stdafx.h"#include#include

2017-01-08 15:01:17 1432

原创 将两个有序链表合并成一个有序链表

题目:给定两个有序的链表,编写一个函数来合并这两个链表,并且返回一个新的有序的链表分析:这两个链表已经有序,所以,只需要对着两个链表的元素依次进行比较即可,这是对两个链表操作的基本问题。参考答案:(非常简单)#include "stdafx.h"#includeusing namespace std;struct ListNode{int val;ListN

2017-01-07 21:17:34 760

原创 将两个链表的元素相加

题目:给定两个链表,链表的每一个元素都是整数,编写一个函数来返回一个新的链表,他是给定的两个链表的和例如a:输入(7->1->6)和(5->9->2)输出(2->1->9)即为:617+295=912b:输入(6->1->7)和(2->9->5)输出(9->1->2)即为:617+295=912分析:对于a,b两种链表相加的情况,a比较简单,顺序遍历链表,然后将链表的两个元素相

2017-01-07 20:15:45 589

原创 判断一个可能包含一个环的链表的环的开始节点

题目:给定一个可能包含一个环的链表,编写一个函数,返回环开始的节点,如果该链表不包含环,则返回NULL分析:定义两个链表指针runner和chaser,从某个位置开始,runner以两倍速度前进,chaser以一倍速度前进,如果有环,这两个指针一定会在某处相遇,相遇时,让chaser从头结点再次出发,此时,runner和chaser都以一倍速度前进,则第二次相遇的地方就是环开始的地方(可以使用

2017-01-06 21:28:59 302

原创 找到一个单项链表中,距离最后一个元素为k的那个元素

题目:在一个单向链表中,找到距离最后一个元素为k的那个元素,例如,给定一个链表,1->2->3->4,并且k=2,这时返回的元素是2分析:找到距离最后一个元素为k的那个元素,依旧使用两个链表指针runner和chaser,区别在于让runner提前k步出发,当runner到达链表的尾部时,chaser正好到距离尾部k的位置处。参考答案:#include "stdafx.h"#inc

2017-01-06 21:21:18 441

原创 给定一个链表,编写函数返回链表的中间点

题目:给定一个链表,编写一个函数返回该链表的中间点分析:在链表的处理过程中,使用两个链表指针,可达到很好的处理效果。例如在本题中,使用两个链表指针runner和chaser,其中runner一次行走两步,chaser一次前进一步,当runner到链表尾部时,chaser正好到链表的中间参考答案:(没有写主函数)#include "stdafx.h"#includeusi

2017-01-06 21:12:53 718

原创 给定一个链表和一个值x,编写函数,对该链表进行重排,使小于x的节点在前面

题目:给定一个链表和一个值x,编写函数,对该链表进行重排,使小于x的节点都出现在大于或者等于x的节点的后面分析:题目很简单,主要的做法就是创建一个哑节点指向头结点(原因:不知道哪一个节点会出现在头结点上),由于链表是是申请内存空间,最后要记得释放内存,否则会造成内存泄露。参考答案:(实际运行的,绝对正确)#include "stdafx.h"#includeusing

2017-01-06 19:55:05 1085

原创 获取一个数组中最长的连续的元素序列

题目描述:获取一个数组中最长的元素序列。例如,给定了[31,6,32,1,3,2],其中最长的连续的元素序列是[1,2,3],最后返回其长度3分析:判断当前节点是属于一个序列的,只需判断前一个或者后一个节点也在序列中即可,即判断array[i]-1和array[i]+1也是位于这个序列中即可。如果这样判断的话,就需要保存过程中的部分值,为此,可以采用哈希表来保存计算的中间值。参考解

2017-01-05 15:32:42 997

原创 判断一个字符串的所有字符是否都是唯一的(使用hash表方法)

哈希表几乎是最为重要的数据结构,主要用于基于“键”的查找,存储的基本单元是键-值对。逻辑上,数组可以作为哈希表的一个特例。以下将举出哈希表的两个应用。1.判断一个字符串所有的字符是否都是唯一的思路:这道题的关键是“唯一”,题目中一旦出现“唯一”,就考虑使用哈希表或者bitset来判断元素出现与否的范畴。使用bitset,需要建立字符到整数下标的映射关系。下面简单介绍一下bi

2017-01-04 22:25:59 3584

原创 用DP解决最长子序列问题

“最长子序列”问题(即有限空间内,满足一定条件的最长顺序子序列)一般的解法:用DP表来记录以当前节点为末节点的序列的解,这样可以固定问题的一端,以下以两个例子来讲子序列问题。1.在一个整数数组中,找到最长的递增子序列。分析:用DP表来记录以当前节点为末节点的序列的最大长度。maxLength[i]=max{maxLength[k],k=0~i-1and array[i]

2017-01-03 19:20:40 444

原创 合唱队,对n个人挑出n-k个人,剩下k个人排成合唱队

题目描述:       华为机试题--      计算最少出列多少位同学,使得剩下的同学排成合唱队形      说明:      N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,   则他们的身高满足存在i(1Ti+

2016-11-15 17:11:06 1389

原创 删除字符串中出现的最少的字符

华为笔试题原题如下所示:实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。编程思想:    获取字符串数组,利用字母的ASCII码表示成计数数组的下标,然后数组里面记录字符出现次数,遍历新数组,将最小的记录删除,输出原数组,具体代码如下所示:c++代码如下所示:#includ

2016-11-14 17:20:41 649

原创 欢迎使用优快云-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-14 17:19:20 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除