自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 美团点评2019年校招编程题——图的遍历

1.题目描述给定一张包含N个点,N-1条边的无向连通图,节点从1到N编号,每条边长度为1。假设你从1号节点出发并打算遍历所有节点,那么路程至少是多少? 输入描述: 第一行输入一个整数N,1<=N<=10^5 接下来N-1行,每行包含两个数X,Y,表示X号节点到Y号节点之间有一条线,1<=X,Y<=N输出描述: 输出总路径的最小值样例...

2018-09-07 10:56:37 3719 1

原创 C++之智能指针

c++智能指针C++中有四个智能指针:auto_ptr, shared_ptr, weak_ptr, unique_ptr ,其中后三个是c++11支持,并且第一个已经被c++11弃用。智能指针从书面意思来说,就是智能。主要是动态内存的使用很容易出问题,要在正确的时间正确释放内存是很困难的。有时我们可能忘了释放内存,会导致内存泄漏;有时我们使用一个已经释放了的内存的指针,会产生引用非法内存...

2018-08-20 23:07:10 194

原创 C++向算法传递参数---STL

1.向算法传递参数在STL中,大多数算法都在<algorithm>头文件中。一般情况小,这些算法不直接操作容器,而是通过遍历由迭代器指定的范围,这个范围是前闭后开,即[begin,end)。例如:向算法传递一个值#include <iostream>#include <vector>#include <algorithm&amp

2018-08-20 10:09:13 607

原创 剑指offer之二叉搜索树与双向链表

1.问题描述题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 二叉树结构类型:struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode*...

2018-08-18 17:43:04 159

原创 剑指offer之复杂链表的复制

1.问题描述题目:请实现函数ComplexListNode*Clone(ComplexListNode*pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者nullptr。 节点的c++定义如下:struct ComplexListNode{ int ...

2018-08-18 14:04:54 410

转载 华为性格测试

必须遵守的原则1 华为喜欢喜欢加班的人,所以必须能吃苦耐劳不计较报酬;2 华为喜欢中庸,不要表现自己的也行,有自己性格一定会被刷掉;3 华为喜欢稳定的,稳定超过一切,包括技术、做事能力;4 性格不能过激;5 团队合作很重要,不要自己来往;6 跟着感觉走,不要前后矛盾;7 不要固执偏激、要咨询别人意见、有团队合作精神、抗压力强、不紧张、遇事乐观阳光、工作和任务保证完成...

2018-08-17 20:45:40 30237 1

原创 AT&T汇编改写linux-0.00-rh9的boot.s

使用AT&T汇编语法改写linux0.00的boot.s# boot.s## It then loads the system at 0x10000, using BIOS interrupts. Thereafter# it disables all interrupts, changes to protected mode, and calls theBOOTSEG = 0x07c0SYSSEG = 0x1000 # sy

2022-01-22 16:49:09 576

原创 SSH长时间连接Linux

1.问题描述通过ssh远程登陆Linux,如果一段时间没有操作远程Linux会自动断开ssh,再次使用远程Linux,需要重新使用ssh连接Linux,这会很不方便。2.解决问题需要对Linux的sshd文件进行配置,文件的路径为:/etc/ssh/sshd_config对该文件进行配置#vim /etc/ssh/sshd_config找到文件中参数:#ClientAliv...

2019-07-27 09:59:03 409

原创 IPV4地址和端口号的正则表达式

1.ipip的范围是(0-255).(0-255).(0-255).(0-255),那么,正则表达式是:QRegExp ipv4regExp("^([1-9]?\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.([1-9]?\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$");2.portport范围是[0-65535]正则表达式:QRegE...

2018-11-29 16:56:21 3938 1

原创 C/C++混合编程

1.关键字extern “C”记得之前面试官问我extern "C"了解不?说实话,当时我真的不了解,很少关注这个。现在我才明白,**extern “C”**的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,...

2018-11-27 15:26:14 528

原创 Java安装教程

Java安装教程一.下载JDK下载地址添加链接描述点击1,接受许可;点击2,更加自己系统选择,我的是win1064位,所以选择win64.下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为 D:\program Files\Java\jdk1.8.0_191。注意安装jre...

2018-10-29 10:35:47 469

原创 剑指offer之机器人的运动范围

1.题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?2.问题分析这也是一个回溯问题,可以借...

2018-10-19 21:10:29 231

原创 剑指offer之矩阵中的路径

1.题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为...

2018-10-19 20:43:09 201

原创 剑指offer之二叉搜索树的第k个结点

1.题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。2.问题分析因为是二叉搜索树,那么中序遍历的结果就是从小到大,所以结点数值大小第k小,就是中序遍历的第k个。例如:(5,3,7,2,4,6,8),中序遍历就是(2,3,4,5,6,7,8),所以第3小,就是第3个数,即:4。3.源代码void...

2018-10-19 19:41:31 221

原创 剑指offer之序列化二叉树

1.题目描述请实现两个函数,分别用来序列化和反序列化二叉树。两个函数分别是:char* Serialize(TreeNode *root) { }TreeNode* Deserialize(char *str) { }2.问题分析系列化和反系列化都应该是一样的遍历方式,或者前序遍历或者中序遍历或者后序遍历。但是为了方便,我们使用前序遍历,第一个字符...

2018-10-19 16:26:08 386

原创 剑指offer之二叉树的下一个结点

1.题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。2.问题分析3.源代码// 例如: 1// 2 3// 4 6 7// 中序遍历是 4 2 1 6 3 7我们分成两种情况:一种是:该节点的右子树不为空,查找该右子树的中序遍历的第一个节点,即:最左...

2018-10-19 13:26:56 181

原创 剑指offer之删除链表中重复的结点

1.题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->52.问题分析方法一:因为重复的节点不保留,可以使用map来统计节点出现的次数,如果出现的次数大于1,那么就不添加到新的链表中,反之,只出现一次的链表就添加到新...

2018-10-19 12:39:49 207

原创 剑指offer之表示数值的字符串

1.题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。2.问题分析其实问题不是很复杂,只是需要考虑完整,需要对每一个字符进行判断,判断是否是数字,是否是逗号,是否是字符’e’或者’E

2018-10-18 23:09:39 443 2

原创 剑指offer之构建乘积数组

1.题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。2.问题描述假设:// 1 a2 a3 a4// a1 1 a3 a4// a1 a2 1 a4// a1 a2 a3 1可以看出来,这个数组B分成两部分,分别是左下角...

2018-10-18 22:03:27 168

原创 剑指offer之扑克牌顺子

1.题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的...

2018-10-18 18:15:34 228

原创 剑指offer之左旋转字符串

1.题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!2.问题分析题目简单,但是我们需要注意:第一,n如果n的长度大于字符串的长度,我们需要求余,...

2018-10-18 16:12:25 163

原创 剑指offer之和为S的连续正数序列

1.题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序...

2018-10-18 15:34:28 175

原创 剑指offer之数组中只出现一次的数字

1.题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。2.问题分析方法一:可以使用map,统计每个数出现的次数,之后对两个出现一次的数进行赋值方法二:这里就数字的特性,首先我们需要知道:两个相同的数异或后值为0。可以用位运算实现,如果将所有所有数字相异或,则最后的结果肯定是那两个只出现一次的数字异或的结果,所以根据异或的结果1...

2018-10-18 14:31:31 185

原创 剑指offer之平衡二叉树

1.题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。2.问题分析什么是平衡二叉树?平衡二叉搜索树(Self-balancing binary searchtree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。根据平衡二叉树的定义,我们可以知道,平衡二叉树也是一个递归定义。我们...

2018-10-18 09:51:19 152

原创 剑指offer之二叉树的深度

1.题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。2.问题分析方法一:可以使用递归的方法,分别求左子树和右子树的深度,则树的深度是:更大者 + 1。这是一个递归的方法。方法二:使用层次遍历的方法,每访问一层,则深度+1,所有层的访问结束之后,就等到深度了。这里需要使用到一个队列,来帮助我们层次遍历,...

2018-10-17 20:33:33 198

原创 剑指offer之统计一个数字在排序数组中出现的次数。

1.题目描述统计一个数字在排序数组中出现的次数。2.问题分析方法一:因为是排序的数组,首先在数组中找到第一个值为k的位置begin,之后从begin找下一个不等于值k的位置end,则,次数为end - begin。例如:1 2 2 3 3 3 5,k = 3,则begin = 3,end = 6,则次数是 end - begin = 3.方法二:因为是排序的数组,通过二分查找法查...

2018-10-17 20:07:20 367

原创 剑指offer之第一个只出现一次的字符

1.题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).2.问题分析第一次遍历,统计每个字符串出现的次数;第二次遍历,如果有那个字符出现次数为1,则返回该字符的位置,反之返回-1.3.源代码int FirstNotRepeatingChar(string str)...

2018-10-17 16:37:51 142

原创 剑指offer之数组中出现次数超过一半的数字

1.题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。2.问题分析方法一:使用map,统计每个数字的次数,之后查找是否有次数超过数组长度的一半的数字;如果有符合条件的数字,则它出现的次数比其他所有数字出现的次数和还要多。...

2018-10-17 11:34:35 148

原创 剑指offer之二叉搜索树的后序遍历序列

1.题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2.问题分析什么是二叉搜索树?根据定义,二叉查找树(Binary SearchTree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右...

2018-10-16 22:43:21 113

原创 剑指offer之顺时针打印矩阵

1.题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.2.问题分析因为是顺时针打印,所以每次我们打印矩阵最外围一圈,之后矩阵缩小一圈,重复上述过程,打印完毕。打印一圈...

2018-10-16 17:24:25 102

原创 剑指offer之树的子结构

1.题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};2.问题描述...

2018-10-16 16:16:16 126

原创 剑指offer之用两个栈实现队列

1.题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。2.问题分析这个问题可以参考两个队列实现一个栈,思想是一样的。需要分析一下什么时候Push和Pop,那个队列Push,那个队列Pop:入队:将元素进栈A出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;如果不为空,栈B直接出栈。3.源代码class...

2018-10-16 15:32:21 119

原创 剑指offer之替换空格

1.题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。2.问题分析修改字符串的几个注意点:如果字符串是内存中的常量区,我们使不允许修改的;修改字符串我们要主要字符串的长度问题,不要越界;字符串后面有一个’\0’标识符,我们需要复制。程序的分析在代码注释里面,看源代码...

2018-10-15 10:50:48 201

原创 剑指offer之二维数组中的查找

1. 问题描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2.问题分析方法一:每行每列的查找每个数字,有点简单,但是没有效率;方法二:根据二维数组的特性,可以选择从右上角或者左下角的元素做比较。例如:1 2 3 (4)2 3 4 5...

2018-10-14 09:47:42 126

原创 C++之约瑟夫环

1.题目描述0,1,2,3,…,n-1这n个数排成一个圈,从数字0开始,每次在圆圈里面剔除第m个数字。求出这个圆圈最后一个数字。2.方法一个是使用链表来模拟这个过程使用公式推导3.代码链表模拟:int LastRemaining_Solution(int n, int m){ if(n==0 || m==0) return -1; list&lt...

2018-09-26 21:40:44 1083

原创 C++桶排序

1.桶排序思想:桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间。但桶排序并不是比较排序O(n),他不受到 下限的影响。桶排序以下列程序进行:设置一个定量的数组当作...

2018-09-24 23:08:27 6184 3

原创 C++计数排序

计数排序(Counting sort)是一种稳定的线性时间排序算法。当输入的元素是 n个min到max之间的整数时候,k = max - min +1,它的时间复杂度是O(n+k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(nlog(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O...

2018-09-24 15:44:00 2801 1

原创 sizeof()大小总结

sizeof 运算符查询对象或类型的大小在需要知道对象的实际大小时使用语法:sizeof(类型)sizeof 表达式解释返回 类型 的对象表示的字节数。返回当 表达式 求值时所返回的类型的对象表示的字节数。#include <iostream>class A{};int main(){ A a; std::cout<< size...

2018-09-19 23:15:03 7179

原创 剑指offer之二叉搜索树与双向链表

1.问题描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。节点的结构体:struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(...

2018-09-12 17:19:32 141

原创 剑指offer之复杂链表的复制

1.题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)节点的结构体:struct RandomListNode { int label; struct RandomListNode *next, *r...

2018-09-12 17:07:56 139

空空如也

空空如也

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

TA关注的人

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