![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题练手
Coder_Suo
这个作者很懒,什么都没留下…
展开
-
华为编程——笨笨熊搬家
笨笨熊搬家打包篇描述:森林里的笨笨熊今天可开心啦——他买了新房子,乔迁新喜要搬家了。因此,笨笨熊请了许多好朋友来帮忙搬家,并准备了很多小纸盒用来装需要搬的物品,不过,这些纸盒的容积都是相同的,并且最多只能装两个物品。但是,为了不打扰太多的朋友,笨笨熊想了个“聪明”办法:让每个纸盒使用效率最高(注:只要纸盒容积大于物品的体积之和就认为可以装下;物品体积不会大于纸盒容积),这样需要的纸盒最少。原创 2014-07-16 20:17:14 · 736 阅读 · 0 评论 -
无序数组中最长连续序列
http://stackoverflow.com/questions/7453248/longest-consecutive-sequence-in-an-unsorted-array转载 2014-07-31 20:25:37 · 1571 阅读 · 0 评论 -
网易2013笔试题-货币面值
题目描述:小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在游戏中购买各种装备来提升自己。有一天,他突然很想知道这些纸币的组合不能表示的最小面额是多少,请聪明的你来帮助小虎来解决这个财政问题吧。输入:输入包含多个测试用例,每组测试用例的第一行输入一个整数N(N输出:对于每组测试用例,输出一原创 2014-08-09 21:14:19 · 804 阅读 · 0 评论 -
两个有序数组中第k小的数字
已知两个数组均为有序的,找出第k小的数。转载 2014-08-10 11:26:38 · 1536 阅读 · 0 评论 -
淘宝2013面试题-求首尾相连数组的最大子数组和
题目描述:给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所有连续子数组和的最大值(如果数组中的元素全部为负数,则最大和为0,即一个也没有选)。原创 2014-08-09 21:33:37 · 578 阅读 · 0 评论 -
2015-华为招聘公开测试题目2-麻将番数
#include#includeusing namespace std;int IsStr4(string& str){//确定是抓到“杠”了 if(str[0]==str[2] && str[0]==str[4] && str[0]==str[6] &&str[1]==str[3] && str[1]==str[5] && str[1]==str[7]){ return 1;原创 2014-08-22 21:42:01 · 730 阅读 · 0 评论 -
小米2013-朋友圈
题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个原创 2014-08-09 21:50:10 · 615 阅读 · 0 评论 -
微策略2012笔试题-棋盘寻宝加强版
题目描述:现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算原创 2014-08-09 20:40:34 · 880 阅读 · 0 评论 -
1-9的九个数排列
问题:1~9的9个数字,每个数字只出现一次,要求:第一位能被1整除,前两位能被2整除,。。。前9位能被9整除。原创 2014-08-11 18:26:00 · 2669 阅读 · 0 评论 -
双向循环链表的创建修改插入删除操作
#include#include#define N 3 /*定义链表的长度*/#define NULL 0int m=N;struct stu /*定义一个结构体变量*/{ int num; char name[20]; struct stu *before; struct stu *next;}; /*主函数*/void main(){ struct原创 2014-08-03 18:40:15 · 900 阅读 · 0 评论 -
微策略2012面试题-棋盘寻宝
题目描述:现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物。输入:输入包含多个测试用例,每个测试用例共有8行8列,第i行的第j列的数字代表了该处棋原创 2014-08-09 20:22:41 · 916 阅读 · 0 评论 -
寻找单个无序数组中第K小的数字
1、对数组进行排序,然后前K个元素就是需要查找的元素,排序的方法可以采用快速排序,但是我们知道在快速排序中如果已经是有序的数组,采用快速排序的时间复杂度是O(N^2),为了解决这种问题,通常选择随机选择一个数组值pivot作为基准,将数组分为S1 = pivot,这样就能避免快速排序中存在的问题,或者采用随机选择三个元素,然后取中间值作为基准就能避免快速算法的最差时间复杂度,这种方法的转载 2014-08-10 11:10:50 · 985 阅读 · 0 评论 -
谷歌2012面试题-子串逆序打印
题目描述:小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串的每个子串都打印反了,现在麻烦你帮小明将这些字符串中的子串修正过来,同时为了使卡片美观,压缩其中的连续空格为1个。输入:输入包含多个测试用例,每个测试用例的第一行是一个正整数 n,1=输出:对应每个测试用例,请按照要求输出修正过的原创 2014-08-09 20:50:44 · 625 阅读 · 0 评论 -
谷歌面试题-两个数组合并后第k小的数字
题目描述:给定两个整型数组A和B。我们将A和B中的元素两两相加可以得到数组C。譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6]。现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为三个整数m,n, k(1紧接着两行, 分别有m和n个数, 代表数原创 2014-08-10 11:45:57 · 972 阅读 · 0 评论 -
2015-华为招聘公开测试题目-单词迷宫
思路:典型的回溯法。原创 2014-08-22 21:48:17 · 708 阅读 · 0 评论 -
华为编程大赛——删除子串
问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数:int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】 str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串【输出】 result_原创 2014-07-29 15:27:08 · 467 阅读 · 0 评论 -
华为编程大赛——路径查找
l 问题描述给定N*N字母矩阵,从任意点出发,上,下,左,右移动,在规定方向连续匹配给定的单词序列。即称为命中,否则不命中,字符矩阵中的字母仅能使用一次,不能在同一单元格停留两次。字符矩阵最大50*50,都为大写字母。输入1为字母矩阵,输入2为字母序列,输出是否匹配。 要求实现函数int FindStat(const char *Map, unsigned int i原创 2014-07-22 21:33:46 · 633 阅读 · 0 评论 -
华为编程大——字符串匹配
问题描述判断包含通配符的匹配字符串是否完全匹配输入的字符串,匹配字符串中包含的通配符仅有‘ * ’和‘?’,且通配符不会连续出现 。(要求完全匹配,而不是包含)其中,通配符‘ * ’:代替 0 个或多个字符,通配符‘ ? ’:代替一个字符要求实现函数int GetMatchStr (const char *ArrStr, const char *KeyStr)【输入】原创 2014-07-30 19:38:53 · 828 阅读 · 0 评论 -
华为编程大赛——训中最小不重复数
查找最小不重复数问题描述如果一个数字十进制表达时,不存在连续两位相同,则称之为“不重复数”。例如, 105 、 1234 和 12121 都是“不重复数”,而 11 、 100 和 1225 不是。给定一个正整数 A ,返回大于 A 的最小“不重复数”。 A 小于 100000要求实现函数unsigned int GetNotRepeatNum(unsigned int l原创 2014-07-30 19:41:01 · 799 阅读 · 0 评论 -
华为编程大赛——24点游戏
24点是一种益智游戏,24点是把4个整数(一般是正整数)通过加减乘除以及括号运算,使最后的计算结果是24的一个数学游戏,24点可以考验人的智力和数学敏感性,它能在游戏中提高人们的心算能力。24点通常是使用扑克牌来进行游戏的,一副牌中抽去大小王后还剩下52张(如果初练也可只用1~10这40张牌),任意抽取4张牌(称为牌组),用加、减、乘、除(可加括号)把牌面上的数算成24。每张牌原创 2014-07-30 19:51:49 · 1780 阅读 · 0 评论 -
华为编程大赛——高精度加减法
问题描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:9876543210 + 1234567890 = ?让字符串 num1="9876543210"原创 2014-07-30 19:36:35 · 579 阅读 · 0 评论 -
华为编程大赛——阿姆斯特朗数
阿姆斯特朗数是一个正整数等于其的各位数的立方和如 153=1*1*1+5*5*5+3*3*3 功能: 求n(n ≤ 65536)以内的所有阿姆斯特朗数原型: int CalcArmstrongNumber(int n);输入参数: int n: n ≤ 65536返回值: n以内的阿姆斯特朗数的数量。原创 2014-07-30 19:46:58 · 3179 阅读 · 0 评论 -
华为编程大赛——删除字符串中重复字符
Description 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序。Prototype int GetResult(const char *input, char *output)Input Param input 输入的字符串Outp原创 2014-07-30 19:43:31 · 1066 阅读 · 0 评论 -
华为编程大赛——出圈问题
问题描述M个人围成一圈报数,数到N(1报数规则:1、从第一个人开始报数为1,下一个人报数为上一个人报数加12、报数的最大值为2000,如果报数超过2000,则下一个人重新从1开始报数要求实现函数int OutFunc (unsigned int iTotalNum, unsigned int iKey)【输入】iTotalNum: 开始报数前的总人数, 0原创 2014-07-30 19:44:35 · 561 阅读 · 0 评论 -
华为编程大赛——判断给定数是否满足条件
判断给定数是否满足给定条件要求 题目描述:1、 条件是一个字符串,其格式由数学上的“开闭区间”,"&&"和"||"组成。其格式为:[5,7]&&(6,9]||(10,20),该条件表示“大于等于5,小于等于7”并且“大于6,小于9”或者“大于10,小于20”。2、 &&优先级高于||。输入:1、 字符串1:上述描述格式的条件:如[5,7]&&(6,9]||(10,20)原创 2014-07-17 11:17:07 · 527 阅读 · 0 评论 -
统计矩阵中零行和零列的个数
题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.输入: The input consists of several test cases, each原创 2014-08-09 20:12:55 · 1587 阅读 · 0 评论 -
华为编程大赛——求表达式的值
题目:给出一个表达式,如原创 2014-07-22 21:29:57 · 583 阅读 · 0 评论 -
华为编程大赛——公交站寻址
问题描述一个N*N二维矩阵代表城市布局,元素值只有’.’,’X’ , ‘B’ , ‘S’,X代表当前位置,B代表路障,S代表公交站,’.’代表可行的路径。现给定路径长度Y,找到能够到达的公交站的个数,路径中不能包含路障。路径长度定义:节点与其自身的距离为0节点与其上、下、左、右四个相邻节点距离都为1要求实现函数int FindStat (const char *Map,原创 2014-07-29 15:34:34 · 847 阅读 · 0 评论 -
2015华为招聘公开测试题目-划及格线
/*吐槽一下:61 87 88 89 94 95 96 97 98 99 这么优秀的成绩,老师竟然将分数线提高到90*/#includeint main(){ int a[10]; int i,j,temp; for(i=0;i<10;++i) scanf("%d",&a[i]); for(i=0;i<9;++i) for(j=i+1;j<10;++j){ i原创 2014-08-22 21:34:44 · 855 阅读 · 0 评论 -
华为编程大赛——TLV编解码
描述: 消息的格式如下: 1、一条消息由一个或多个基本信息单元(Information Element)IE组成。 2、每个IE采用TLV编码。TLV是Tag Length Value的缩写,它是一种变长数据的编解码, 由Tag,Length(value的长度)及Value三个域组成。3、Tag固定占4个字节,Length固定占2个字节。 4、字节序按照大端序处理。原创 2014-08-15 17:47:10 · 4700 阅读 · 0 评论