华为od三道机试题,刚考完,分享下题型

一.输入一组字符串, 求字符串分组后,每组的和为水仙花数
(注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身  如 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 10000
1 2 3 4 5 6 7 8 9 10
返回
0


三.输入字符串,字符串可转换为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
输出:
-1
个人感觉第一二题是有些难度的,特别是第二题,我由于效率问题,只通过了80%的例子,第三题反而简单点。
#华为OD机考##笔试题目##华为#
全部评论
第二题可以利用全排列去重后求和,第三题有点像力扣岛屿问题
2
送花
回复
分享
发布于 2022-03-20 16:36
你的题咋这么简单
2
送花
回复
分享
发布于 2022-04-03 11:43
滴滴
校招火热招聘中
官网直投
啊,怎么感觉比牛客网练习的题难啊
2
送花
回复
分享
发布于 2022-04-03 14:40
第一题怎么破
1
送花
回复
分享
发布于 2022-04-08 17:00
感谢楼主分享😁,礼貌借下楼:【华为OD招聘】: 岗位:研发 / 测试 / 算法 / 大数据语言:java/web/python/c/c++/JS/go 地域:东莞、深圳、西安、武汉、成都、上海等。岗位多多,可私聊我~ 【说明】: 1、面试、绩效评定、均由华为管理层进行,满一年即有名额转正华为,转华为的要求透明,量化,达到要求即可, 2、接触并开发核心业务代码(非边缘代码!),技术栈全面,技术牛人多,技术氛围好,和互联网技术栈看齐 3、基本工资+绩效工资+年终奖+华为办公环境+带薪年假,与华为员工同工同酬,pl 无区别分配任务 想尝试OD或者想咨询相关问题的都欢迎来戳我!
1
送花
回复
分享
发布于 2022-04-27 17:18
第一题 js
1
送花
回复
分享
发布于 2022-06-05 22:23
第一题水仙花数的变形,定义一个函数多次调用即可; 第二题:前缀和可破 第三题:BFS+计数
1
送花
回复
分享
发布于 2022-04-30 23:25
机试锁手机吗
点赞
送花
回复
分享
发布于 2022-04-20 14:34
第二题很简单吧,python 九行就ok了
点赞
送花
回复
分享
发布于 2022-04-27 16:24
    public static void dfs(List<List<Integer>> res, List<Integer> tmp, int[] nums, int sum, int x, int startIndex, boolean[] visited) {         if (startIndex > nums.length) {             return;         }         if (sum >= x) {             res.add(new ArrayList<>(tmp));         }         for (int i = startIndex; i < nums.length; i++) {             if(visited[i]) {                 continue;             }             //如果存在不连续,则直接return             if(i > 1 && visited[i - 1] == false && visited[i - 2]) {                 return;             }             visited[i] = true;             sum += nums[i];             tmp.add(nums[i]);             dfs(res, tmp, nums, sum, x, i + 1, visited);             sum -= nums[i];             tmp.remove(tmp.size() - 1);             visited[i] = false;         }     }
点赞
送花
回复
分享
发布于 2022-05-17 18:25
第一题 Python
点赞
送花
回复
分享
发布于 2022-06-09 23:00
水仙花可以用划分型号DP 污染水源我用的并查集做的,对1的周边进行污染,感染后看下几个集合,就代表话费多少天
点赞
送花
回复
分享
发布于 2022-07-15 02:13
点赞
送花
回复
分享
发布于 2022-08-03 16:44

相关推荐

18 110 评论
分享
牛客网
牛客企业服务