
笔试与面试
阳安子
技术在成长。
展开
-
字符移位(腾讯2017实习生)
字符移位1、题目: 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述: 对于每组数据,输出移位后的字符串。输入例子: AkleBiCeilD输出例子: kleieilABCD2、代码:#include <io原创 2016-07-03 19:23:26 · 643 阅读 · 0 评论 -
寻找倒数第m个元素
1、题目: 寻找倒数第m个元素 (来自此书:Programming Interviews Exposed Secrets to Landing Your Next Job–程序员面试攻略)2、算法思路: 两个指针theM,p,初始化为头元素。p指针为遍历指针,theM为位置指针,指向从p指针开始的倒数第m个元素。遍历开始至theM与p相距m个元素后,theM与p开始同步前行。3原创 2016-06-26 22:43:06 · 597 阅读 · 0 评论 -
网易2016研发工师编程题2
奖学金小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少时间复习。这个题我写了一上午,难怪水平那么差。就因为一个问原创 2016-07-31 15:45:16 · 427 阅读 · 0 评论 -
今日头条2017后端工程师实习生笔试题
魔法权值给出 n 个字符串,对于每个 n 个排列 p,按排列给出的顺序(p[0] , p[1] … p[n-1])依次连接这 n 个字符串都能得到一个长度为这些字符串长度之和的字符串。所以按照这个方法一共可以生成 n! 个字符串。 一个字符串的权值等于把这个字符串循环左移 i 次后得到的字符串仍和原字符串全等的数量,i 的取值为 [1 , 字符串长度]。求这些字符串最后生成的 n! 个字符串中权值原创 2016-08-16 09:45:18 · 1435 阅读 · 0 评论 -
链表后半部分反转(2016亚信实习生笔试题)
题目(2016中兴实习生笔试题): 将链表后半部分反转,编写功能函数。函数头类似于本代码中reList()。 只记得一个大概了,具体规则在代码注释中提到了。#define NULL 0;#include <stdio.h>typedef struct LNode{ char value; struct LNode *next;}LNode;int原创 2016-06-23 16:54:05 · 3354 阅读 · 0 评论 -
Farthest Point(微软2016校招笔试题)
Description Given a circle on a two-dimentional plane.Output the integral point in or on the boundary of the circle which has the largest distance from the center.Input One line with three floats whi原创 2016-08-19 11:18:10 · 1168 阅读 · 0 评论 -
不使用>、<、if判断两数大小
不使用>、<、if判断两数大小1、代码:#include <iostream>using namespace std;#define compare(a,b) ((int)(a/b)==0?0:1) int main(){ int a,b; cin>>a>>b; cout<<compare(a,b)<<endl; return 0;}2、说明: a原创 2016-07-07 21:38:02 · 767 阅读 · 0 评论 -
高效计算余数
#include <iostream>using namespace std;int main(){ int a = 81; int mod = a % 8, mod1 = a & 7; cout << mod << "\t" << mod1<<endl; int mod2 = a % 7, mod3 = a & 6; cout << mod2 << "原创 2016-05-21 20:08:20 · 1102 阅读 · 0 评论 -
不用第三变量做值交换,不用sizeof判断int字节数
一句话,为什么我想不出来。 结果: 代码:#include <iostream>using namespace std;int main(){ int a = 9, b = 1; cout << "交换前"<<a << "\t" << b << endl; a = a + b; b = a - b; a = a - b; cout <<原创 2016-05-18 19:19:38 · 316 阅读 · 0 评论 -
京东2016实习生研发工程师编程题
年终奖小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。 给定一个6*6的矩阵board,其中每个元素为对应格子的礼物价值,左上角原创 2016-08-13 14:32:05 · 1556 阅读 · 0 评论 -
京东2015实习生笔试编程题
小米Gitgit是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base’<–base<–A<–A’ ^ | — B<–B’ 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符’0’或原创 2016-08-14 18:47:21 · 938 阅读 · 0 评论 -
2017秋招编程题小记
前言:此处只记录我遇到的部分编程题,而另一篇文章只记录知识点。 部分知识点记录 http://blog.youkuaiyun.com/bestzem/article/details/52434236百度(研发岗)给定初始值initVal,行rows,列cols,得到增量矩阵A,求出A*A’,并返回。函数如下:int **fun(int initVal, int rows, int cols){原创 2016-09-13 22:35:06 · 874 阅读 · 0 评论 -
链表的排序(CVTE一面)
来,跟我写个链表排序。将链表排序?对,你有什么要问我的吗?什么类型的值?int。要自己写链表?可以转换成别的容器再写吗?这个O(N)空间,你先尝试写O(1)的。嗯。于是写了2分钟。打扰一下,可以是双链表,还是只能是单链表。你终于问我这个问题了。可以是双链表。写完代码。下面先附上我回来再电脑上写的w后的代码。#include using na原创 2016-09-14 20:14:21 · 580 阅读 · 0 评论 -
进击的巨人(2017秋招总结)
进击的巨人 我是一名本科生,来自双非一本的电子信息工程专业,秋招中主要使用C++,收获自己理想的offer。 我的经历 我在大三下学期的时候便开始了秋招准备。那个时候正值暑期实习生招聘,年少轻狂的我一路狂投,几乎一无所获(仅收获三次面试机会:恒生武汉、亚信和一个初创公司,最后被亚信录用,然而由于时间原因,放弃实习,是遗憾也是惊喜)。这才发现自己实原创 2016-11-03 14:01:11 · 1287 阅读 · 0 评论 -
网易2016研发工师编程题
小易的升级之路小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3…bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一系列的锻原创 2016-07-30 13:08:03 · 438 阅读 · 0 评论 -
网易2016实习研发工程师编程题
比较重量小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。 给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。原创 2016-07-29 21:04:08 · 498 阅读 · 0 评论 -
有趣的数字(腾讯2017实习生)
有趣的数字1、题目: 小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述: 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2…an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX.输出描述: 对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表原创 2016-07-03 19:30:48 · 1261 阅读 · 2 评论 -
构造回文(腾讯2017实习生)
构造回文(腾讯2017实习生) 文本比较算法Ⅱ——Needleman/Wunsch算法http://www.cnblogs.com/grenet/archive/2010/06/03/1750454.html1、题目: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述: 输入数据有多组,每组包含一个字符串原创 2016-07-03 15:09:17 · 894 阅读 · 0 评论 -
最长递增子序列A (完美2017实习生)
最长递增子序列A 动态规划中递推式的求解方法不是动态规划的本质 https://www.zhihu.com/question/23995189/answer/353244791、题目: 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱) 例如:给定一个长度为8的数组A{1,3,5,2,4,6,7,8},则其最长的单调递增子序列为{1,2,4,6,7,8原创 2016-07-04 19:52:12 · 411 阅读 · 0 评论 -
最长递增子序列B(完美2017实习生)
最长递增子序列B1、题目: 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱) 例如:给定一个长度为8的数组A{1,3,5,2,4,6,7,8},则其最长的单调递增子序列为{1,2,4,6,7,8},长度为6.输入描述: 第一行包含一个整数T,代表测试数据组数。 对于每组测试数据: N-数组的长度 a1 a2 … an (需要计算的数组) 保证: 1<原创 2016-07-04 22:48:08 · 436 阅读 · 0 评论 -
二分查找(去哪儿校招题)
二分查找1、题目: 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。测试样例: [1,3,5,7,9],5,3返回:12、代码:#include <iostream>#in原创 2016-07-05 22:59:22 · 2154 阅读 · 0 评论 -
首个重复字符(去哪儿2016校招)
首个重复字符1、题目: 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。测试样例: “qywyer23tdd”,11返回:y2、代码:#include <iostream>#include <string>using namespace std;原创 2016-07-07 08:55:04 · 483 阅读 · 0 评论 -
寻找Coder(去哪儿2016校招)
寻找Coder1、题目: 请设计一个高效算法,再给定的字符串数组中,找到包含”Coder”的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照”Coder”出现的次数递减排列,若两个串中”Coder”出现的次数相同,则保持他们在原数组中的位置关系。 给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存原创 2016-07-07 10:51:26 · 434 阅读 · 0 评论 -
最高分是多少(华为2016校招)
最高分是多少(华为2016校招)1、题目描述 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括多组测试数据。 每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。 学生ID编号从1编到N。 第二行包含N个整数,代表这N个学生的初始原创 2016-07-07 15:49:04 · 579 阅读 · 0 评论 -
扑克牌大小(华为2016校招)
扑克牌大小(华为2016校招)1、题目描述扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:原创 2016-07-07 20:52:48 · 787 阅读 · 0 评论 -
简单错误记录(华为2016校招)
简单错误记录(华为2016校招)1、题目描述 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并) 2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,原创 2016-07-08 10:12:57 · 947 阅读 · 0 评论 -
生成格雷码(腾讯2016研发工程师编程题)
生成格雷码(腾讯2016研发工程师编程题)1、题目: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。 给定一个整数n,请返回n位的格雷码,顺序为从0开始。 测试样例: 1 返回:[“0”,”1”]2、思路: 格雷码:异或生成、反射码递归生成(get新技能)。 欲得n+1位码,先0原创 2016-07-08 11:10:54 · 515 阅读 · 0 评论 -
define误区小记
先贴代码:#include <QCoreApplication>#include <iostream>#define A(x) x+xusing namespace std;int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); int i=5*A(4)*A(6); cout<<i<<end原创 2016-06-22 23:49:56 · 685 阅读 · 0 评论 -
微信红包(腾讯2016研发工程师编程题)
微信红包(腾讯2016研发工程师编程题)1、题目: 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。 若没有金额超过总数的一半,返回0。 测试样例: [1,2,3,2,2],5 返原创 2016-07-08 11:18:24 · 1391 阅读 · 0 评论 -
风口的猪-中国牛市(小米2016校招)
风口的猪-中国牛市(小米2016校招)1、题目描述 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法原创 2016-07-09 15:47:16 · 670 阅读 · 0 评论 -
2017秋招知识点小记(C/C++)
也许,现在是我为我大学前三年买单的时候了,虽有不甘,但是认了。我现在,只有一个选择,继续看书、刷题。趁着秋招才刚刚开始,我需要坚持不懈。每次笔试过后,我会在这里记录一些我的错题。多益:1、字符串相加string str{ "123" }; str += 49;//此时49表示的ASCII码,str="1231" str += 4;//str="123\x4"原创 2016-09-04 19:39:16 · 1763 阅读 · 1 评论