
历年真题
我还年轻呀
减肥ing,多刷刷算法题就不饿了!
展开
-
【华为】24点游戏算法
题目描述问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字。输出:trueorfalse本题含有多组样例输入。输入描述:输入4个int整数输出描述:返回能否得到24点,能输出true,不能输出false示例1输入7 2 1 10输出truepackage test;import java.util.*;public cla...原创 2020-12-08 21:57:34 · 566 阅读 · 0 评论 -
【华为】4个常考IP地址的题型
split分隔符总结1.字符"|","*","+"都得加上转义字符,前面加上"\\"。2.而如果是"\",那么就得写成"\\\\"。3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。题目:IP地址交集判断题目描述:输入四个IP端,前两个为第一个IP段的起始和终止地址,后两个是第二个IP段的起始和终止地址,判断这两个IP段是否存在交集输入描述:输入4个IP输出描述:如果存在交集,输出 Overlap IP ; 如果不存在交集,输出 No Overlap IP题解:pa原创 2020-12-06 10:39:53 · 1323 阅读 · 0 评论 -
【华为】统计每个月兔子的个数
题目:题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?输入描述:输入int型表示month输出描述:输出兔子总数int型示例1输入9输出34题解:使用递归,或者用数组存储的动态规划。第一个月 1第二个月 2第三个月 3第四个月 5第五个月 8...import java.util.*;public class Main{原创 2020-12-06 00:58:34 · 203 阅读 · 0 评论 -
【华为】大小写字母转换
题目: 输入任意个字符串,将其中的小写字母变为大写,大写字母变为小写,其他字符不用处理; 输入描述: 任意字符串:abcd12#%XYZ 输出描述: 输出字符串:ABCD12#%xyz 示例1: 输入: abcd12#%XYZ 输出: ABCD12#%xyz 题解:注意a的ASCII码是97,A的ASCII码是65,0的ASCII码是48.import java.util.Scanner;public class Main { public s原创 2020-12-05 23:48:34 · 598 阅读 · 0 评论 -
面试常问问题:两两反转链表(递归加非递归)
方法一:递归方法:package test;import java.util.*;class ListNode { int val; ListNode next; // 因为每一个节点都是ListNode的一个对象,所以next即下一个节点也是ListNode类型 ListNode(int x) { val = x; } //赋值链表的值}class Solution { public ListNode swapPairs(Li原创 2020-09-26 20:03:38 · 373 阅读 · 0 评论 -
【度小满】面经
手撕代码:镜像二叉树(第一次做出来)import java.util.Scanner;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; TreeNode(int val){ this.val = val; }}class Solution{ public TreeNode reverse(TreeNode root) {原创 2020-09-16 23:00:19 · 543 阅读 · 0 评论 -
【猿辅导笔试】9.12客户端笔试第二题
题目:使用s1,s2,s3三个字符,s1,s2只能从左边分开,然后将分开的数拼接陈s3,如果最后拼接的次数小于给定的次数,则输出1.题解:package test;import java.util.*;//示例://1//ac bb abbc 3public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); whi原创 2020-09-12 20:49:46 · 347 阅读 · 2 评论 -
【华为】称砝码
题目:题目描述现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。注:称重重量包括0输入描述:输入包含多组测试数据。对于每组测试数据:第一行:n --- 砝码数(范围[1,10])第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000])第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,原创 2020-09-09 09:56:14 · 267 阅读 · 0 评论 -
【华为】学英语
题目:题目描述Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:如22:twentytwo,123:onehundredandtwentythree。说明:数字为正整数,长度不超过九位,不考虑小数,转化结果为英文小写;输出格式为twentytwo;非法数据请返回“error”;关键字提示:and,billion,million,thousand,hundred。方法原型:publicstaticStringparse(longnum)...原创 2020-09-09 09:09:28 · 292 阅读 · 0 评论 -
【华为】从单向链表中删除指定值的节点
题目:题目描述输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。链表结点定义如下:class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; }}详细描述:本题为考察链表的插入和删除知识。链表的值不能重复构造过程,例如1 <- 23 <- 2...原创 2020-12-06 17:22:25 · 278 阅读 · 0 评论 -
【华为】编辑距离
题目:Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫LevenshteinDistance。Ex:字符串A:abcdefg字符串B:abcdef通过增加或是删掉字符”g”的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义为两个字符串的距离。要求:给定任意两个...原创 2020-09-08 14:31:51 · 397 阅读 · 0 评论 -
【华为】表达式求值
题目:给定一个字符串描述的算术表达式,计算出结果值。输入字符串长度不超过100,合法的字符包括”+,-,*,/,(,)”,”0-9”,字符串内容的合法性及表达式语法的合法性由做题者检查。本题目只涉及整型计算。输入描述:输入算术表达式输出描述:计算出结果值示例1输入400+5输出405MATLAB:fprintf('%d\n',eval(input('','s')));...原创 2020-09-08 12:24:08 · 194 阅读 · 0 评论 -
【华为】最大公约数
求最小公倍数求最大公约数有两种方法 更相减损法和辗转相处法 最小公倍数在求出最大公约数后 两个数相乘除以最大公约数就是最小公倍数以下我们用的是更相减损法更相减损法是拿两个数中的较大值减去较小值,然后在减数、被减数、差之间选取两个较小值继续相减,直到减数和被减数相等,得出的数就是最大公约数。例://更相减损术://8 10//10 - 8=2//8 - 2= 6//6-2=4//4-2=2//2==2于是最大公约数就是2题解:package test;import java.原创 2020-09-08 11:15:25 · 155 阅读 · 0 评论 -
【华为】查找一个偶数最接近的两个素数
题目:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对输入描述:输入一个偶数输出描述:输出两个素数示例1输入20输出713题解:package test;import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc=new Sc原创 2020-09-08 10:54:30 · 139 阅读 · 0 评论 -
【华为】放苹果
题目:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。输入描述:输入两个int整数输出描述:输出结果,int型示例1输入7 3输出8题解:package test;/*应用动态规划*/import java.util.Scanner;public class Main{ public static void main(String[] args) { .原创 2020-09-08 10:47:06 · 226 阅读 · 0 评论 -
【华为】DNA序列
题目:题目描述一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。输入描述:输入一个string型基因序列,和int型子串的长度输出描述:找出GC比例最高的子串,如果有多个输出第一个的子原创 2020-09-08 10:14:16 · 234 阅读 · 0 评论 -
【华为】MP3贯标位置
题目:输入描述:输入说明:1输入歌曲数量2输入命令U或者D输出描述:输出说明1输出当前列表2输出当前选中歌曲示例1输入10UUUU输出7 8 9 107题解:(三目运算符很巧妙,测试用例还没有多次尝试,以后再看)package test;import java.util.*;public class Main{ public static void main(String[] args) { Sca...原创 2020-09-08 10:04:52 · 129 阅读 · 0 评论 -
【华为】查找两个字符串a,b的最长公共子串
题目:查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入abcdefghijklmnopabcsafjklmnopqrstuvw输出jklmnop题解:package test;import java.util.*;public class Main{ public static void main(String[] args){原创 2020-09-08 09:50:50 · 646 阅读 · 0 评论 -
【华为】最长公共子串--动态规划
题目:计算两个字符串的最大公共字串的长度,字符不区分大小写输入描述:输入两个字符串输出描述:输出一个整数示例1输入asdfas werasdfaswer输出6题解://动态规划 if(a[i]==b[j])c[i][j]=c[i-1][j-1]+1;else c[i][j]=0; longSubString=max(c[i][j])import java.util.Scanner;public class Main { public static原创 2020-09-08 00:38:01 · 125 阅读 · 0 评论 -
【华为】简单错误记录
题目:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件可能带路径,记录文件名称不能带路径输入描述:一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。 .原创 2020-09-06 12:09:43 · 257 阅读 · 0 评论 -
【华为】最高分是多少
题目:老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为'Q原创 2020-09-06 11:21:26 · 333 阅读 · 0 评论 -
【华为】数独
题目:数独定义:数独(shù dú)是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。如有多解,输出一个解输入描述:输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。7 2 6 9 0 4 0 5原创 2020-09-06 11:08:03 · 507 阅读 · 0 评论 -
【华为】字符集合
题目:输入一个字符串,求出该字符串包含的字符集合输入描述:每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出描述:每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。输入例子1:abcqweracb输出例子1:abcqwer题解:package test;import java.util.Scanner;import java.util.HashSet;public class原创 2020-09-06 10:59:12 · 238 阅读 · 0 评论 -
【华为】进制转换
题目:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入)输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。输入例子1:0xA输出例子1:10题解:(小知识)想要获得Integer:String 为十进制. 采用valueof(String)合适. 非十进制,采用decode(String)想要获得int:String 为十进制. 采用parseInt(String )合适. 非十进制,采用pa.原创 2020-09-06 10:34:16 · 846 阅读 · 0 评论 -
【华为】明明的随机数
题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。InputParamn输入随机数的个数inputArrayn个随机整数组成的数...原创 2020-09-06 10:17:57 · 157 阅读 · 0 评论 -
【华为】汽水瓶
题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),原创 2020-09-06 10:13:43 · 105 阅读 · 0 评论 -
【华为】删数
题目:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]进行计算。输出描述:一行输出.原创 2020-09-06 10:04:23 · 188 阅读 · 0 评论