华为od三道机试题,刚考完,分享下题型
一.输入一组字符串, 求字符串分组后,每组的和为水仙花数
(注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身 如 371 = 3^3 + 7^3 + 1^1 )
(1) 如果无法找到该分组 ,返回0 ;
(2) 找到该分组,切分组不唯一 ,返回 -1;
二.输入一整形数组,判断连续数组和是否大于等于某一个指定的数max;返回组合的个数
如 输入
3 7
3 4 7
返回
4
1 2 3 4 5 6 7 8 9 10
返回
三.输入字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染,(数组中只有0和1,0表示纯净, 1表示污染,
每天只可污染上下左右的水域) ,如果开始全部被污染,或永远无法污染,则返回-1;
如:输入 1,0,1,0 ,0,0,1,0,1
转化为数组为:
1 0 1
0 0 0
1 0 1
输出:
2
注释 第一天后水域变为
1 1 1
1 0 1
1 1 1 第二天全部被污染
输入 0,0,0,0
输出:
(注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身 如 371 = 3^3 + 7^3 + 1^1 )
(1) 如果无法找到该分组 ,返回0 ;
(2) 找到该分组,切分组不唯一 ,返回 -1;
(3)分组唯一 ,则返回分组的组数 ;
二.输入一整形数组,判断连续数组和是否大于等于某一个指定的数max;返回组合的个数
如 输入
3 7
3 4 7
返回
4
第一行的3表示第二行数组输入3个数,第一行的7是比较数,用于判断连续数组是否大于该数;
组合为 3+4;3+4+7;4+7;7; 都大于定于指定的7;所以共四组
10 100001 2 3 4 5 6 7 8 9 10
返回
0
每天只可污染上下左右的水域) ,如果开始全部被污染,或永远无法污染,则返回-1;
如:输入 1,0,1,0 ,0,0,1,0,1
转化为数组为:
1 0 1
0 0 0
1 0 1
输出:
2
注释 第一天后水域变为
1 1 1
1 0 1
1 1 1 第二天全部被污染
输入 0,0,0,0
输出:
-1
个人感觉第一二题是有些难度的,特别是第二题,我由于效率问题,只通过了80%的例子,第三题反而简单点。
#华为OD机考##笔试题目##华为#