/*
编程1 :求解f(n) = 1-2+3-4+5-6+……+n;
*/

#if 0
int main()
{int n;int sign = 1;  //符号位int sum = 0;cin>>n;for(int i = 1;i<=n;i++){sum+=i*sign;sign*=-1; //每次都改变符号位}cout<<sum<<endl;}
#endif

/*
编程2:给出一个非负整数数组,最初定位在数组的第一个位置,数组中的每个元素的值代表你在那个位置可以跳跃的最大长度,判断你是否到达数组的最后一个位置
例如: A = {2,3,1,1,4},返回true, A = {3,2,1,0,4},返回false
*/

#if 0
int jump(int arr[],int n,int x)
{if(arr == NULL || n == 0)return 0;if(x>=n-1)  //判断x是否走到最后一个位置return 1;for(int i = arr[x];i>0;i--){if(jump(arr,n,x+i) == 1) //递归  数组的元素作为下标传过去继续跳跃return 1;}return 0;
}
int main()
{int n;cin>>n;int *a = new int[n];for(int i = 0;i<n;i++){cin>>a[i];}int ret = jump(a,n,0);if(ret == 1)cout<<"true"<<endl;elsecout<<"false"<<endl;
}
#endif

/*
编程3:给定数组,任意相邻两个元素的差的绝对值等于1,设计一个算法,在该数组中可以查找某个元素的位置,如果该元素的值多次出现,返回第一次的位置。
例如:{4,5,6,5,6,7,8,9,10,9},元素9出现了2次,第一次出现的位置是7
*/

/*
解题思路:比如要找y,由于相邻两个数字之差的绝对值为1,设t = abs(y-a[0]),所以在第t个位置之前的的数肯定都比y小,
所以我们不需要依次遍历,直接定位到a[t],重新计算t,再重复上述步骤
这种算法主要利用了当前位置的数与查找数的差来实现跨越式搜索。
*/

#if 0
int FindNumber(int a[],int n,int number)
{if(a == NULL ||number == 0)return 0;int num = abs(number-a[0]);while(num<n){if(a[num] == number)return num;num+=abs(number-a[num]);}
}
int main()
{int a[15] = {4,5,6,5,6,7,8,9,10,11,12,11,12,13,12};int ret = FindNumber(a,15,13);cout<<ret<<endl;
}
#endif

/*
编程4:写函数实现,输入一个不包含重复字符的字符串,输出该字符串中字符的所有组合,
例如,输入abc,输出a,b,c,ab,ac,bc,abc
*/
/*
解题思路:因为要求集合里的元素所能够组成的所有组合,所以我们需要遍历该集合,
这里假设我们的集合为”abc”,从头扫描集合里的元素,第一个元素为a,对于这个元素,
有两种选择,一种是将字符放到组合中,然后在剩下的n-1个字符中选取m-1个字符
另一种是不把字符放到组合中去,接下来需要在剩下的n-1个字符中选取m个字符
*/

#if 0
void Combination(char* string,int number,vector<char>& result)
{if(number == 0){vector<char>::iterator iter = result.begin();for(;iter<result.end();++iter)cout<<*iter;cout<<endl;return ;}if(*string == '\0')return ;result.push_back(*string);Combination(string+1,number-1,result); //将字符放到组合当中result.pop_back();Combination(string+1,number,result);  //不把字符放到组合当中}
void Combination(char* string)
{if(string == NULL)return ;int length = strlen(string);vector<char>result;for(int i = 1;i<=length;++i){Combination(string,i,result);}
}
int main()
{char* string = "abc";Combination(string);return 0;
}
#endif

简述题:给定一个盛有一些黑色豆子和一些白色豆子的咖啡罐以及一大堆额外的黑色豆子,重复以下过程,直至罐中仅剩一颗豆子为止。从罐中随机选取两颗豆子,如果颜色相同,就将它们都扔掉并且放入一个额外的黑色豆子,如果颜色不同,就将白色的豆子放回罐中,而将黑色的豆子扔掉。证明该过程会终止。最后留在罐中的豆子颜色与最初的罐中的白色豆子和黑色豆子的数量有什么数学关系。

答案: 题目意思是从罐中随机选取豆子,若颜色相同,扔掉再放入一颗额外的黑色豆子,若颜色不同,将白色豆子放回,黑色豆子扔掉。
一样的道理,不管如何罐中白色豆子的奇偶性一直保持不变, 当白球的个数为偶数时,最后剩下的一球为黑球,当为奇数时,最后剩下的为白球。关于这个问题网上有人写代码实现,大家可以搜索了解。

总结:这次广联达线下笔试,拿到试卷感觉题目不是很难,但是之后我电脑上实现的时候,发现自己在试卷上的手写代码还是有很多小漏洞,
第三道编程题是借鉴别人的思路写的,当时只是想到顺序遍历数组,没有想出更高效的算法,第二题组合问题没有写出来代码,总结下来笔试的不是很好,还是要继续加油。

广联达2018现场笔试题目相关推荐

  1. 广联达产品经理笔试题目

    你喜欢网上购物吗,请列举出京东和淘宝的区别(如果没使用过京东和淘宝,列举其他的网上购物产品区别也可)? 参考答案: (产品定位,商家入驻,用户群体.物流.仓储.真货假货.全国布局等等角度来考虑) 1. ...

  2. 字节跳动今日头条笔试题目经历2018

    本人是 字节跳动2018年12月来学校宣讲会招实习生的时候参加笔试的.方向是后端开发.那时候还在学框架啊之类的还没开始刷算法,笔试的三道题目只做出了第一道的代码,其他两道都是只写出了分析过程.刚刚出结 ...

  3. 华为2018春招笔试题目 字节流解析与长整数相乘

    基础知识杂烩: 字节也叫Byte,是计算机数据的基本存储单位, bit存储内容是0和1,bit是计算机中最小的储存单位 一个Byte是由8个bit组成,它是最小的可寻址单元 ,1个字节等于8位二进制. ...

  4. 湖南中烟计算机专业考试,2018湖南中烟招聘笔试题目,2019笔试内容

    原标题:2018湖南中烟招聘笔试题目,2019笔试内容 [湖南中公教育] 2019湖南中烟长沙卷烟厂共计招聘68人 所有岗位笔试内容均为:行测+英语+专业知识 专业知识是指:每个岗位考查本岗位相关专业 ...

  5. 暴风影音2018届校园招聘技术类笔试题目

    数据已保存在本地 暴风影音2018届校园招聘技术类笔试题目 (一)选择题 1.静态变量通常存储在进程的哪个区?() A.栈区 B.全局区 C.堆区 D.代码区 2.已知一棵二叉树,如果中序遍历的节点顺 ...

  6. c语言 抽奖算法,腾讯2018校招笔试!抽奖算法思路c++实现!进入鹅厂真的简单!...

    进腾讯一般有3次面试:第一面看基本素质,第二面看专业技能,第三面是boss决策,说在前面的话:牛人都是爱学习的,越是成功的人学习越是频繁.在那次商业写作课上,我遇到了那位腾讯资深面试官. 背景 小伙伴 ...

  7. pli测试50题题库_马士基笔试题目

    马士基笔试题目 12 分钟 50 道题目 有数字推理,图形题目,还有小学计算题目 相信以南大的学生智商肯定很轻松搞定 另一份是性格倾向测试 正面勾出来你认为你自己是什么样的人,若干形容词 反面勾出来你 ...

  8. 2018校招笔试真题汇总(javaC++)

    科大讯飞: 2018秋招笔试科大讯飞java笔试试题 https://www.nowcoder.com/discuss/67684?type=2&order=3&pos=13& ...

  9. 百度 腾讯 阿里 小米 笔试题目宝典

     九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾 ...

最新文章

  1. [转]Mysql中的SQL优化与执行计划
  2. 说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)...
  3. 使用Docker Swarm搭建分布式爬虫集群
  4. Falsk session 源码解析
  5. 深入理解VMware虚拟网络
  6. 博客园 使用锚和书签制作目录
  7. 注册(三)之设置Contact地址的过期参数
  8. 大话RAC介质恢复---联机日志损坏
  9. 使用Foxit Reader实现批量打印以及一页多版设置技巧
  10. DDU(Display Driver Uninstaller) 18.0.3.5 显卡驱动彻底卸载清理工具,支持卸载NVIDIA, AMD, Intel
  11. win7删除文件提示“您需要权限才能执行此操作”的3种解决办法
  12. 基于语音的情绪识别系统(Python)
  13. YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
  14. 设计一个圆形文字LOGO
  15. 软件好,才是真的好:区块链的1976—2017
  16. 使用加速器可以提升获取Docker官方镜像的速度
  17. 中国人民大学与加拿大女王大学金融硕士——在职读研该如何平衡学习与工作呢
  18. 玩客云搭建WordPress环境(lnmp)教程
  19. ai作文批改_AI批改作文哪家强?英语老师亲测讯飞智能学习机更高效
  20. nodejs+vue+elementui台球厅会员球桌预约管理系统

热门文章

  1. 利用PYTHON复核excel表格数据的勾稽关系
  2. 04 在Debian系统上安装软件
  3. 成长型企业想要数字化转型?第三代英特尔️至强️可扩展平台给你高效、灵活的底气
  4. SpringBoot 2.7.2 分模块整合 activiti 7.1.0.M6
  5. EHCI主机控制器--主机控制器初始化
  6. findstr 命令详解
  7. 使用kali的ettercap实现ARP欺骗和DNS欺骗
  8. 垃圾回收算法(4种)垃圾回收的方式有哪些
  9. jQuery for 循环图片列表
  10. XML(快速学会编写、阅读XML文档)