昨天晚上偶然看到同学在做阿里实习生笔试中的程序编码检测,题目如下给定两个数组A和B,假定其中有四个元素即为:A=[a1,a2,a3,a4]  B=[b1,b2,b3,b4];
那么将B中的元素插入到A之中,可以在A数组中任意位置插入任意个。即有如下可能:
C=[a1,b1,b2,b3,b4,a2,a3,a4]; 或者C =[b1,a1,b2,b3,a2,a3,b4,a4]等可能;
然后将新数组中元素进行两两相乘并再次类和运算,输出其中和最大的一个组合。(其中1234的顺序不能改变)
题目限时为30分钟,有限时间内感觉该题目的难度确实有点大。
第一想法是暴力破解:
vector<int> MaxSum(vector<int> A,vector<int> B){int sum=0;int length=A.size();int i=0;while(i<length){queue<int> Aq,Bq;for(int j=0;i<length;i++)Aq.push(A[i]);for(int j=0;i<length;i++)Bq.push(B[i]);vector<int> C;for(int j=0;j<i;j++){int k=Aq.front();C.push_back(k);Aq.pop();}}
}
然后写了这么多写不下去了。。。感觉情况太过复杂难以分析,所以就鸽了,感觉用二叉树不知道会不会容易点,但是单纯的使用数组的难度有点大。递归好难啊!!!!好难插,感觉头脑太笨难以解决。
然后今天下午想了想,突然灵光一闪,是不是可以通过选择两数之间最小的数插入到一个新的链表之中,然后对数组进行求值,因为每次对比都是两个数组中最小的元素,所以这样来说相对乘积应该也是最小的一组。所以这种解法是动态规划?还是贪心?我算法基础不好啊,就是感觉能这样解来着,也不清楚到底能不能解决题目,所以附上自己编的程序,希望有大牛给点解读吧!我这题没底的,所以仅供各位做一个参考也是自己学习的记录吧:
vector<int> MaxSum(vector<int> A,vector<int> B){int sum=0;int length=A.size();int i=0;queue<int> Aq,Bq;for(int j=0;i<length;i++)Aq.push(A[i]);for(int j=0;i<length;i++)Bq.push(B[i]);vector<int> C;while(i<2*length){if(Aq.front()<Bq.front())C.push_back(Aq.front());elseC.push_back(Bq.front());        }for(int k=0;k<C.size();){sum+=C[k]*C[k+1];k+=2;}return C;
}
鸽了鸽了,感觉有点难啊!30分钟并不能解出来,所以看来阿里已经离我远去了啊!
刚刚看了看好像还是有点问题,没有控制Aq和Bq两个队列弹出,所以输出肯定不对,所以又改了改:
vector<int> MaxSum(vector<int> A,vector<int> B){int sum=0;int length=A.size();int i=0;queue<int> Aq,Bq;for(int j=0;i<length;i++)Aq.push(A[i]);for(int j=0;i<length;i++)Bq.push(B[i]);vector<int> C;while(i<2*length){if(Aq.empty()||Bq.empty())   //添加跳出循环判断条件break;if(Aq.front()<Bq.front()){C.push_back(Aq.front());Aq.pop();}else{C.push_back(Bq.front());Aq.pop();}       }if(Aq.empty()){//添加对一方队列为0时的插入方式;while(!Bq.empty()){C.push_back(Bq.front());Bq.pop();}}else{while(!Aq.empty()){C.push_back(Aq.front());Aq.pop();}}for(int k=0;k<C.size();){sum+=C[k]*C[k+1];k+=2;}return C;
}

好了好了最后就是这样了,不改了,写的头疼。

阿里实习生笔试程序检测题目相关推荐

  1. 昨夜阿里实习生笔试:印象深刻的几道题

    缘由 昨晚去阿里巴巴的北邮考场参加笔试:今年的实习生.有几道题让我印象深刻.暂时记录于此.沿路和一个在北邮读过硕的同学聊了聊,说北邮很有计算机氛围,而且自习室经常爆满,为了抢座还有打架的.虽然别人打架 ...

  2. 阿里云天池大赛赛题(机器学习)——阿里云安全恶意程序检测(完整代码)

    目录 赛题背景 全代码(ML 和 DL) 特征工程进阶与方案优化 代码 特征工程进阶部分 基于LightGBM 的模型验证 模型测试 深度学习解决方案:TextCNN建模 代码 数据读取 数据预处理 ...

  3. IBM实习生笔试题目

    IBM实习生笔试题目 2007-11-28 15:05 一.            选择题(不定项选择) 1.关键字switch可以作用在以下哪些数据类型上? A. int       B. char ...

  4. 阿里2017前端实习生笔试编程第一题

    阿里2017实习生笔试时间一小时,这是两道编程题中的第一题,当时做题时时间不够,虽然知道怎么做,但是提交时的结果完全错误,最终原因还是自己对JavaScript掌握的不熟练,之后又花一小时把基本要求实 ...

  5. 笔试一道honor的嵌入式软件程序编写题目【c语言字符串】

    笔试一道honor的嵌入式软件程序编写题目 - 题目要求: 原题目:[给定一个字符串,将该字符串中的大写字母全部转换为小写,并将字母转换为数字0,最后将处理的字符串倒序输出.] 解析:[要求输入一组字 ...

  6. 阿里巴巴2017实习生笔试(一)

    1.内联函数: A 项错误,因为使用 inline 关键字的函数只是用户希望它成为内联函数,但编译器有权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的. B 项错误,头文件中不仅要包 ...

  7. 2016阿里实习生面试经历

    2016阿里实习生面试经历 这是一次失败的经历,分享出来一方面是为了告诫自己,也和大家分享下失败的经验. 我是在4月23参加阿里笔试的,阿里笔试是没有摄像头监控,不像腾讯那样.正如阿里说的:" ...

  8. 记一次网易2018实习生笔试-大数据岗位

    记一次网易2018实习生笔试-大数据岗位 网易2018实习生招聘笔试题-大数据开发实习生-云音乐 凭借印象和草稿,记录下一些题目. 共有20道选择题,3道编程题,2道简答题. 选择题 HDFS Blo ...

  9. 2015年阿里实习生面试Java研发工程师 小记

    5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条 ...

最新文章

  1. 怎么打开外部文件_保存的DWG文件再次用CAD打开时提示文件损坏了怎么办?【AutoCAD教程】...
  2. Django从理论到实战(part55)--将网站上传到GitHub
  3. delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)
  4. 分支限界法时间复杂度_数据结构时间复杂度的摊还分析(均摊法)之一:基础...
  5. LC-1186 连续子数组中可删除一个数的最大和
  6. 医学影像中的基础知识
  7. 项目管理学习笔记之二.工作分解
  8. HTML5和CSS3新特性有哪些
  9. 从工作量证明(POW)到高阶工作量证明(HPOW)
  10. SSL证书过期怎么办?别慌!SSL应急解决方案及注意事项来了
  11. 2018 ACM-ICPC 宁夏预选赛网赛 B-Goldbach
  12. vue如何实现消息的无缝滚动
  13. 用FireFox火狐浏览器的3D Tilt 插件查看网页3D视图效果
  14. 字符串有长度限制吗?是多少?
  15. 2011年7月编程语言排行榜:COBOL五角大楼出品
  16. 从零开始构建矽璓工业物联操作系统:使用risc-v架构的hifive1 emulator
  17. JEECG 3.7.1版本发布,企业级JAVA快速开发平台
  18. 3d打印光固化好还是热固化好_创想三维再添重磅光固化3D打印机 LD-006大尺寸高精度-创想三维 LD-003_深圳3D打印机行情...
  19. Hello Qt(三十三)——Model/View官方文档
  20. Helix QAC — 软件静态测试工具

热门文章

  1. String截取指定字符前面(后面)所有字符和String的常用方法
  2. tcp三次握手丢包后会发生什么
  3. Latex 调整行距
  4. C语言中的函数与数组详解
  5. 2018谷歌开发者节深圳站,Testin云测的AI应用案例获广泛关注
  6. 我滴python第一周笔记
  7. WXSS-WXML-WXS语法
  8. 小程序中wxs的使用
  9. 利用图示法判别AR,MA,ARMA,ARIMA模型平稳性
  10. 浏览器缓存知识+JS实现缓存