2011.11.5 一道微软面试题
2011-11-05 02:03
232 查看
看到CSDN上的一个面试题,呵呵,很简单的,以开始想得复杂了,做题之前一定要好好想想!想清楚了再下手!
用函数:
moveSubArrayToTheEnd(int[] array, int numberOfElements)
传入一个数组如 {1,2,3,4,5,6,7}
将数组前面 head的一个子集移到数组末尾end
如input numberOfElements=3,则{1,2,3,4,5,6,7}=>{4,5,6,7,1,2,3}
input numberOfElements=5,则{1,2,3,4,5,6,7}=>{6,7,1,2,3,4,5}
如何写出该算法?
其实数组大小问题我很纠结,我也不知道该怎么处理它的大小问题,所以只能加个参数了,麻烦知道的朋友告诉我该怎么处理那个数组的大小问题吧,谢谢了。
用函数:
moveSubArrayToTheEnd(int[] array, int numberOfElements)
传入一个数组如 {1,2,3,4,5,6,7}
将数组前面 head的一个子集移到数组末尾end
如input numberOfElements=3,则{1,2,3,4,5,6,7}=>{4,5,6,7,1,2,3}
input numberOfElements=5,则{1,2,3,4,5,6,7}=>{6,7,1,2,3,4,5}
如何写出该算法?
其实数组大小问题我很纠结,我也不知道该怎么处理它的大小问题,所以只能加个参数了,麻烦知道的朋友告诉我该怎么处理那个数组的大小问题吧,谢谢了。
#include <iostream> #include <cstdlib> using namespace std; void MoveSubArrayToTheEnd(int array[],int arrayLength ,int numberOfElements) { int temp,n,i,j; n=arrayLength-numberOfElements; for(i=0;i<n;++i) { temp=array[arrayLength-1]; for(j=arrayLength-1;j>0;--j) array[j]=array[j-1]; array[j]=temp; } }//MoveSubArrayToTheEnd void print(int array[],int arrayLength) { for(int i=0;i<arrayLength;i++) cout<<array[i]<<" "; cout<<endl; } int main() { int array[7]={1,2,3,4,5,6,7}; int n=sizeof(array)/sizeof(int); cout<<"The size of the array is:"<<n<<endl; print(array,n); MoveSubArrayToTheEnd(array,n,4); cout<<"After the Reverse"<<endl; print(array,n); return 0; }
相关文章推荐
- 关于微软的一道面试题
- 关于一道老微软面试题的新解
- 微软的一道面试题
- 一道微软面试题
- 一道微软面试题的Java解法
- WF4.0实战(十三):解微软一道面试题
- 五个囚犯 一道真正难倒亿人的智力题,这是微软的面试题。
- 经典算法研究系列:三、动态规划算法解微软一道面试题[第56题]
- 五个囚犯 一道真正难倒亿人的智力题,这是微软的面试题。
- Java认证:一道微软面试题
- 海盗瓜分金币--一道网上流传的微软面试题
- 对一道微软面试题的思考
- 一道微软面试题
- 一道微软逻辑面试题
- 从微软的一道面试题谈问题解决之道
- 微软一道面试题
- 一道微软的面试题:12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球
- HDU 1029 一道微软面试题
- 一道关于signed和unsigned的微软面试题
- 微软的一道面试题