华为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-04-03 14:40
你的题咋这么简单
2 回复 分享
发布于 2022-04-03 11:43
第二题可以利用全排列去重后求和,第三题有点像力扣岛屿问题
2 回复 分享
发布于 2022-03-20 16:36
第一题 js
1 回复 分享
发布于 2022-06-05 22:23
感谢楼主分享😁,礼貌借下楼:【华为OD招聘】: 岗位:研发 / 测试 / 算法 / 大数据语言:java/web/python/c/c++/JS/go 地域:东莞、深圳、西安、武汉、成都、上海等。岗位多多,可私聊我~ 【说明】: 1、面试、绩效评定、均由华为管理层进行,满一年即有名额转正华为,转华为的要求透明,量化,达到要求即可, 2、接触并开发核心业务代码(非边缘代码!),技术栈全面,技术牛人多,技术氛围好,和互联网技术栈看齐 3、基本工资+绩效工资+年终奖+华为办公环境+带薪年假,与华为员工同工同酬,pl 无区别分配任务 想尝试OD或者想咨询相关问题的都欢迎来戳我!
1 回复 分享
发布于 2022-04-27 17:18
第一题怎么破
1 回复 分享
发布于 2022-04-08 17:00
第一题水仙花数的变形,定义一个函数多次调用即可; 第二题:前缀和可破 第三题:BFS+计数
1 回复 分享
发布于 2022-04-30 23:25
点赞 回复 分享
发布于 2022-08-03 16:44
水仙花可以用划分型号DP 污染水源我用的并查集做的,对1的周边进行污染,感染后看下几个集合,就代表话费多少天
点赞 回复 分享
发布于 2022-07-15 02:13
第一题 Python
点赞 回复 分享
发布于 2022-06-09 23:00
    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 九行就ok了
点赞 回复 分享
发布于 2022-04-27 16:24
机试锁手机吗
点赞 回复 分享
发布于 2022-04-20 14:34

相关推荐

真tmd的恶心,1.面试开始先说我讲简历讲得不好,要怎样讲怎样讲,先讲背景,再讲技术,然后再讲提升多少多少,一顿说教。2.接着讲项目,我先把背景讲完,开始讲重点,面试官立即打断说讲一下重点,无语。3.接着聊到了项目的对比学习的正样本采样,说我正样本采样是错的,我解释了十几分钟,还是说我错的,我在上一家实习用这个方法能work,并经过市场的检验,并且是顶会论文的复现,再怎么不对也不可能是错的。4.面试官,说都没说面试结束就退出会议,把面试者晾在会议里面,丝毫不尊重面试者难受的点:1.一开始是讲得不好是欣然接受的,毕竟是学习。2.我按照面试官的要求,先讲背景,再讲技术。当我讲完背景再讲技术的时候(甚至已经开始蹦出了几个技术名词),凭什么打断我说讲重点,是不能听出人家重点开始了?这也能理解,每个人都有犯错,我也没放心上。3.我自己做过的项目,我了解得肯定比他多,他这样贬低我做过的项目,说我的工作是错误的,作为一个技术人员,我是完全不能接受的,因此我就和他解释,但无论怎么解释都说我错。凭什么,作为面试官自己不了解相关技术,别人用这个方式work,凭什么还认为这个方法是错的,不接受面试者的解释。4.这个无可厚非,作为面试官,不打招呼就退出会议,把面试者晾着,本身就是有问题。综上所述,我现在不觉得第一第二点也是我的问题,面试官有很大的问题,就是专门恶心人的,总结面试官说教,不尊重面试者,打击面试者,不接受好的面试者,技术一般的守旧固执分子。有这种人部门有这种人怎么发展啊。最后去查了一下,岗位关闭了。也有可能是招到人了来恶心人的,但是也很cs
牛客20646354...:招黑奴啊,算法工程师一天200?
点赞 评论 收藏
分享
熊大不大:你说没问题,我是接班人啊
点赞 评论 收藏
分享
评论
18
110
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务