微软一道面试题
来源:互联网 发布:fp6601q数据手册 编辑:程序博客网 时间:2024/05/16 14:09
一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。
请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。 注意: - 5个数值允许是乱序的。比如: 8 7 5 0 6 - 0可以通配任意数值。比如:87 5 0 6 中的0可以通配成9或者4 - 0可以多次出现。- 复杂度如果是O(n2)则不得分。思路:因为数列是无序的,而且因为0的存在而富有变化,那么连续相邻这个条件中有哪些是可以保持不变的呢?我们假设这五个连续数列从小到大依次为A[0]-A[1]-A[2]-A[3]-A[4] .那么这无序的5个数字只要能填入到这个区间内,则都为有序的,否则为无序的.则这5个数字组成的区间长度至多为4,因此,我们只需要判断区间长度max-min <=4?是否成立即可.代码:bool isContinueSeries(int* A,int n){int max=0;int min=65535;for(int i=0;i<n;++i){if(A[i] > max)max=A[i];if(A[i] < min)min=A[i];}if((max - min) <=4)return true;else return false;}
- 一道微软面试题
- 一道微软面试题
- 微软一道面试题
- 一道微软面试题
- 一道微软面试题
- 一道微软面试题
- 微软一道面试题
- 微软的一道面试题
- 一道微软逻辑面试题
- 微软的一道面试题
- 微软的一道面试题
- 一道微软的面试题
- 微软的一道面试题
- 请教高手 一道据说是微软面试题
- 关于一道微软面试题的思考
- 关于一道微软面试题的解答
- 微软的一道面试题的解法
- 一道微软面试题的解答
- 关于zbar扫描条形码,所搭载的设备(ios)
- 利用Oracle表扫描机制恢复被Truncate的数据
- c语言创建支持多参数多类型的函数
- php学习 之 Smarty 逻辑判断 和 循环
- 使用supervivi+DNW下载MDK环境下2440裸机程序到SDRAM中运行
- 微软一道面试题
- 嵌入式驱动开发笔记(裸机程序篇)---准备工作
- 703n的OpenWrt配置一:安装和基本设置
- 通过代码来判断是C++还是C
- Linux网络设备驱动架構學習(三)
- Android系统移植与调试之------->如何修改Android设备的开机第二阶段Logo
- [LeetCode] First Missing Positive
- Java String.replace()方法
- 八阵图