华为2012校园招聘上机试题解析:数组比较与约瑟夫问题
5星 · 超过95%的资源 需积分: 9 31 浏览量
更新于2024-09-12
收藏 73KB DOC 举报
本资源是一份针对2012年华为校园招聘上机考试的试题及其答案,主要涉及两个部分:数组比较和约瑟夫问题。
1. **数组比较** (20分)
- 问题描述:编写一个名为`array_compare`的函数,接受四个参数:两个整数(数组长度`len1`和`len2`)和两个整数数组`array1[]`和`array2[]`。函数需要从数组末尾开始逐个向前比较元素,若两个数组长度不同,则只比较较短数组的元素个数。返回的是不相等元素的个数。
- 示例:
- 输入:`array1` = [1, 3, 5], `len1` = 3, `array2` = [77, 21, 1, 3, 5], `len2` = 5,返回0,因为所有元素都相等。
- 输入:`array1` = [1, 3, 5], `len1` = 3, `array2` = [77, 21, 1, 3, 5, 7],返回3,因为有三个元素(77, 5, 7)不相等。
2. **约瑟夫问题**
- 问题描述:给定一个包含随机正整数的数列和初始计数器`m`,按照特定规则进行计数和移除元素。从数列的第一个位置开始,计数到`m`后将当前位置的数替换为`m`,并将该数移除,接着从下一个位置重新开始计数。当数列所有元素都被处理过或计数达到末尾时,返回到数列的第一个位置继续计数。最后输出移除的数字顺序。
- 要求实现函数:`void array_iterate`,接收四个参数:整数数组`list[]`、其长度`length`、初始计数值`m`和一个整型指针(用于记录当前计数位置)。
这两个问题考察了应聘者的编程基础、数据结构理解和逻辑分析能力,特别是数组操作和循环控制的运用。解决这类问题需要清晰的算法设计思路,如采用双指针遍历数组、动态更新计数器等技巧。通过这份试题,华为旨在评估候选人在实际编程任务中的解决问题的能力以及对细节的把控。
2019-09-21 上传
2009-04-10 上传
2019-09-21 上传
103 浏览量
2014-06-28 上传
2013-12-04 上传
2014-06-07 上传
iloveowhlg126
- 粉丝: 0
- 资源: 5
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫