自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 腾讯2018春招技术类编程题汇总

1.小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.小Q现在希望你能帮他算算前n项和为多少...

2019-01-04 21:52:21 560

原创 strcpy memcpy strcat strcmp 函数的实现

strcpy函数的实现不考虑内存重叠//这种实现如果遇到内存重叠就会出错,如mystrcpy(Src+1,Src);'\0'由于被覆盖导致出现死循环char* strcpy(char* dst, const char* src){ assert(dst); assert(src); char* ret = dst; while((*dst++ = *sr...

2018-12-24 22:22:31 337

原创 lunix内核—死锁的四个必要条件和解决办法

死锁概念及产生原理    概念:  多个并发进程因争夺系统资源而产生相互等待的现象。   原理:当一组进程中的每个进程都在等待某个事件发生,而只有这组进程中的其他进程才能触发该事件,这就称这组进程发生了死锁。 本质原因:        1)、系统资源有限。       2)、进程推进顺序不合理。死锁产生的4个必要条件   1、互斥:某种资源一次只允许一个进程访问...

2018-12-19 22:08:32 587

原创 trapping-rain-water

题目描述 Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example,Given[0,1,0,2,1,0,1,3,2,1,...

2018-12-10 16:19:46 145

原创 first-missing-positive

题目描述 Given an unsorted integer array, find the first missing positive integer.For example,Given[1,2,0]return3,and[3,4,-1,1]return2.Your algorithm should run in O(n) time and uses constant sp...

2018-12-10 15:44:18 127

原创 combination-sum-ii

题目描述 Given a collection of candidate numbers ( C ) and a target number ( T ), find all unique combinations in C where the candidate numbers sums to T .Each number in C may only be used once...

2018-12-10 14:42:59 110

原创 地牢逃脱

题目描述给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。输入描述:每个输入...

2018-12-10 11:29:16 152

原创 请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error 输入描述:

题目描述请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error输入描述:输入为一行,包含两个字符串,字符串的长度在[1,100]。输出描述:输出为一行。合法情况输出相加结果,非法情况输出error示例1输入123 123abd 123输出246Error/*思路:根据加法规则,最低(最后)为对齐,依次相加;本...

2018-12-09 17:27:37 505

原创 filename extension(文件名获取)

题目描述Please create a function to extract the filename extension from the given path,return the extracted filename extension or null if none.输入描述:输入数据为一个文件路径输出描述:对于每个测试实例,要求输出对应的filename ext...

2018-12-09 16:23:03 1363

原创 酒店价格

题目描述酒店房间的价格录入是通过时间段来录入的,比如10月1日至10月7日800元,10月8日至10月20日500元,请实现以下函数int[][] merge(int[][] dateRangePrices),输入是某个酒店多个日期段的价格,每个日期段(终止日期大于等于起始日期)和对应的价格使用长度为3的数组来表示,比如[0, 19, 300], [10, 40, 250]分别表示从某天开始第...

2018-12-09 16:11:34 246

原创 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?

题目描述有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每...

2018-12-09 15:07:51 904

原创 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

题目描述牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。输入描述:每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。...

2018-12-07 21:02:47 344

原创 分田地

题目描述牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗?输入描述:每个输入包含 1 个测试用例。每个测试用例的第一行包含两个整数...

2018-12-07 17:39:38 677

原创 分苹果

题目描述n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ...

2018-12-07 11:45:32 130

原创 身份证分组

题目描述18位身份证的编码规则是:前1、2位数字表示:所在省(直辖市、自治区)的代码第3、4位数字表示:所在地级市(自治州)的代码第5、6位数字表示:所在区(县、自治县、县级市)的代码;第7—14位数字表示:出生年、月、日;第15、16位数字表示:所在地的派出所的代码;第17位数字表示性别:奇数表示男性,偶数表示女性;第18位数字是校检码,用来检验身份证的正确性。用户在输入身份...

2018-12-07 10:29:30 207

原创 给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。 输入描述:

题目描述给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符(需要区分大小写)。输入描述:输入数据一个字符串,包括字母,数字等。输出描述:输出首先出现三次的那个英文字符示例1输入Have you ever gone shopping and输出e/*思路:借助一个map用于记录每一个字符出现的次数,并且是英文字符;从左到右...

2018-12-07 10:14:04 1494

原创 给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。

题目描述给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。输入描述:输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。输出描述:输出保留下来的结果。示例1输入325 1输出...

2018-12-06 19:53:07 1088

原创 彩色宝石项链

题目描述有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能够拿到最多的宝石。输入...

2018-12-06 19:50:44 101

原创 袋鼠过河

题目描述一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到...

2018-12-06 19:44:31 173

原创 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

题目描述数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。输入描述:输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。输出描述:对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。示例1输入81 42 2输出94.733.41#in...

2018-12-06 19:41:07 4760

原创 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身, 现在要求输出所有在m和n范围内的水仙花数。

题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。输出描述:对于每个测试实例,要求输出所有在给定...

2018-12-06 19:39:10 18389 1

原创 电话号码分身

题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE&quot

2018-12-06 19:35:08 145

原创 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”

题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求输出句子中单词反转后形成的句子示例1输入...

2018-12-06 19:32:16 2359

原创 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

题目描述现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4...

2018-12-06 19:29:33 1056

原创 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。 如:n=3时,3个整数13,312,343,连成的最大整数为34331213。

题目描述设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述:有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。输出描述:...

2018-12-06 19:24:18 6090

原创 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。/* 思路* 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,* 因此从左下角开始查找,当要查找数字比左下角数字大时。右移* 要查找数字比左下角数字小时,上移clas...

2018-11-29 11:49:43 436 1

原创 请实现一个函数,将一个字符串中的每个空格替换成指定符号。

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。/*思路:从前向后记录‘ ’数目,从后向前替换‘ ’。 重点:从后向前替换的时候的技巧 例如:“we are lucky”0 1 2 3 4 5 6 7 8 9 10 11w e a r e l u c k y可以...

2018-11-29 11:47:32 322

原创 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*思路:现将链表反转,再一次打印链表。*/class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> res; List...

2018-11-29 11:41:34 137

原创 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/*思路:先序遍历第一个位置肯定是根节点node, 中序遍历的根节点位置在中间p,在p左边的肯定是node的左子树的中序数组,p右边的肯定...

2018-11-29 10:13:49 346

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。/*用两个栈实现一个队列的功能?要求给出算法和思路!<分析>:入队:将元素进栈A出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈; 如果不为空,栈B直接出栈。*/class Solution{public: vo...

2018-11-29 10:04:40 195

原创 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。/*思路:二分查找mid = low + (high - low)/2需要考虑三种情况:(1)arr...

2018-11-29 09:59:04 1693

原创 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39/*思路:就是简单的斐波那契数列,按照正常的思路求解即可可以分为递归和非递归,这里介绍非递归的方式*/class Solution {public: int Fibonacci(int n) { if(n<=1) ...

2018-11-29 09:38:57 1127

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。/*思路:递归,斐波那契数列最后一步只能跳1级或两级,若跳1级则最后一步之前走了number-1级,若跳2级则最后一步之前走了number-2级,所以有:jumpFloor(number) = jumpFloor(number-1) + jumpFloor...

2018-11-29 09:34:22 1859

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。/*思路:f(n) = 2*f(n-1)分析如下:f(1) = 1f(2) = f(2-1) + f(2-2)         //f(2-2) 表示2阶一次跳2阶的次数。f(3) = f(3-1) + f(3-2) + f(3-3)...f(n) =...

2018-11-29 09:27:06 4579 1

原创 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。/*思路1:n = n&n-1;此操作会使n的二进制数1的个数减一;*/class Solution {public: int NumberOf1(int n) { if(n==0) return 0; int count ...

2018-11-28 20:45:08 623

原创 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。/**思路:简单快速幂1.全面考察指数的正负、底数是否为零等情况。2.写出指数的二进制表达,例如13表达为二进制1101。3.举例:10^1101 = 10^0001*10^0100*10^1000。4.通过&1和>>1来逐位读取1101,为1...

2018-11-28 20:24:36 126

原创 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。/*思路:类似冒泡算法,前偶后奇数就交换.*/class Solution {public: void reOrderArray(vector<int> &array) { ...

2018-11-28 17:54:48 294

原创 输入一个链表,输出该链表中倒数第k个结点。

题目描述输入一个链表,输出该链表中倒数第k个结点。/*思路:构造快慢指针,先让快指针先走k步,再快慢指针一起走。当快指针走到链表最后一个元素时,慢指针真好走到倒数第k个元素*//*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }...

2018-11-28 17:23:14 127

原创 输入一个链表,反转链表后,输出新链表的表头。

题目描述输入一个链表,反转链表后,输出新链表的表头。/*思路:这是反转链表的固定套路,可以将其视为一个固定算法*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL) return pHead; ListN...

2018-11-28 16:55:44 108

原创 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*思路:由于链表单调递增,所以构造两个指针分别指向链表元素,一开始指向量表头部比较两指针所指向链表元素的大小,将小的元素添加的Merge链表中,同时指针指向链表下一个元素,一直循环,直到某一个指针指向的链表元素为NULL;再将指针指向不为NULL的链表元素继续添加的Merge链表...

2018-11-28 16:50:12 375

空空如也

空空如也

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

TA关注的人

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